問題があります。データベース サーバーが米国にあり、ユーザーがイタリアにいます。アメリカ時間より私のサイトに挿入すると表示されます。getdate() 関数を使用してデータベースから日付を取得する必要があります。それで、私がデータベースの米国時間をイタリア時間に変更するために何をしますか。
ありがとう
問題があります。データベース サーバーが米国にあり、ユーザーがイタリアにいます。アメリカ時間より私のサイトに挿入すると表示されます。getdate() 関数を使用してデータベースから日付を取得する必要があります。それで、私がデータベースの米国時間をイタリア時間に変更するために何をしますか。
ありがとう
CAST および CONVERT に関する MSDN ドキュメントによると、変換スタイルは no. 105 はイタリア用です。
SELECT CONVERT(VARCHAR(50), GETDATE(), 105)
しかし、SQL Server データベース テーブルでは、常に として保存されDATETIME
(願わくば!)、形式DATETIME
や関連付けられたものはありません。これは 8 バイトの数値にすぎません。したがって、データの保存については何もする必要はありません。正しい形式で出力する必要があるのは、(または何かを使用して) データを表示するときだけです。SELECT
日付形式は、データベースのCollationに関連しています。
データベースがセットアップされたら、照合順序を変更するのは簡単ではありません。
MSDNからの指示は次のとおりです。
Make sure you have all the information or scripts needed to re-create your user databases and all the objects in them. Export all your data using a tool such as the bcp Utility. For more information, see Importing and Exporting Bulk Data. Drop all the user databases. Rebuild the master database specifying the new collation in the SQLCOLLATION property of the setup command. For example: Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName /SQLSYSADMINACCOUNTS=accounts /[ SAPWD= StrongPassword ] /SQLCOLLATION=CollationName For more information, see Rebuilding System Databases. Create all the databases and all the objects in them. Import all your data.
それ以外の場合は、データベースからデータを取り出した後で、日付を必要な形式に変換する必要があります。複数の日付形式を表示する可能性が高い場合は、とにかくこれを行う必要があります。そして、これは通常、SQL ではなくアプリケーション層で行われます。