ホームページ >データベース >mysql チュートリアル >SQL Select ステートメントで 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 調整が必要な場合は、次の質問を参照してください:
以上がSQL Select ステートメントで UTC 日時列を現地時間に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。