6

誰でも助けてもらえますか、SQL Server 2005データベースがインストールされています(実際には、SQL Server 2005サーバーに接続されたSQL Server 2000です)、デフォルトのサーバー言語言語USAとmm/dd/yyのような日付形式で、これを維持する必要があります方法ですが、現在、新しいデータベースをサーバーにアップロードしたばかりで、これには dd/mm/yyyy の日付形式が必要です。

サーバー全体ではなく、データベースのみを強制的に変更できますか? サーバー全体で変更を強制すると、他のすべてのアプリが失敗します

たとえば、現在、失敗するこのSQLステートメントがあります..

SELECT * FROM セッション WHERE ultimo_acceso < '16/04/2009 13:36:17'

もちろん、これを追加することもできますが、これは機能するようになりました

SELECT * FROM セッション WHERE ultimo_acceso < Convert(datetime, '16/04/2009 13:36:17', 103)

しかし問題は、アプリケーション内に多数の SQL ステートメントがあることです。実のところ、アプリケーションはかなり古く、ソース コードに変更を加えるつもりはまったくありません。

したがって、データベース/特定のデータベースのテーブルだけで変更を強制できれば、これで十分です

どんな助けでも本当に感謝しています

4

4 に答える 4

9

SQL Management Studio>セキュリティ>ログイン>{ユーザープロパティ}>デフォルト言語でそのユーザーのデフォルト言語を選択することにより、ユーザーごとのデフォルトの日付形式を変更できます。

そして、あなたは各言語の日付形式を見ることができます

EXEC sp_helplanguage
于 2009-04-16T12:29:55.607 に答える
3

私はあなたが混乱していると思います。SQL Server の日時は、文字列としてまったく保存されません。これらは 8 バイトのバイナリ値として保存され、ユーザーに表示するときにのみ文字列に変換されます。日付を保持するために Datetime 列を使用していますね。

于 2009-04-16T13:01:45.313 に答える
3
SET dateformat dmy;
SELECT * FROM sesiones WHERE ultimo_acceso < '16/04/2009 13:36:17';
于 2009-04-16T12:13:20.967 に答える
2

SQL Server で日時文字列を扱うときは、常に ISO-8601 日付形式を使用します。

YYYY-MM-DDTHH:MM:SS 

これは、使用している言語や地域の設定に関係なく機能するはずです。

次のように選択してみてください:

SELECT * FROM sesiones WHERE ultimo_acceso < '2009-04-16T13:36:17'

マルク

于 2009-04-16T13:04:20.377 に答える