ホームページ >データベース >mysql チュートリアル >SQL Select ステートメントで UTC 日時列を現地時間に変換するにはどうすればよいですか?

SQL Select ステートメントで UTC 日時列を現地時間に変換するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-17 04:27:10760ブラウズ

How to Convert UTC Datetime Columns to Local Time in SQL Select Statements?

SQL 選択ステートメントで UTC 日時列を現地時間に変換する

SQL 選択クエリを実行するとき、作業を容易にするために、UTC 日時列を現地時間に変換する必要がある場合があります。解釈と表示。この変換は、データベースを変更したり、外部コードを使用したりせずに実行できます。

変換メソッド

SQL Server 2008 以降では、次の構文を使用できます:

SELECT CONVERT(datetime, 
               SWITCHOFFSET(CONVERT(datetimeoffset, 
                                    MyTable.UtcColumn), 
                            DATENAME(TzOffset, SYSDATETIMEOFFSET()))) 
       AS ColumnInLocalTime
FROM MyTable

より短い代替案は:

SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), MyTable.UtcColumn) 
       AS ColumnInLocalTime
FROM MyTable

考慮事項

日付の差分を計算するために減算 (-) を使用しないことが重要です。この方法では、非アトミックな操作により不正確な結果が生じる可能性があります。

DST 調整

提供されている方法では、夏時間 (DST) が考慮されていません。 DST 調整が必要な場合は、次の質問を参照してください:

  • [SQL Server で夏時間の開始および終了関数を作成する方法](https://stackoverflow.com/questions/2614192/how) -SQL サーバーで夏時間の開始および終了関数を作成する)

以上がSQL Select ステートメントで UTC 日時列を現地時間に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。