ホームページ >データベース >mysql チュートリアル >SQL で UTC 日時列を現地時間に変換するにはどうすればよいですか?
SQL クエリで UTC 日時を現地時間に効率的に変換する
多くのデータベース システムは、一貫性を保つためにタイムスタンプを UTC で保存します。 このガイドでは、外部コードを必要とせずに、SQL クエリ内でこれらの UTC 日時列を現地時間に直接変換する方法を説明します。
SQL Server 2008 以降:
このアプローチでは、正確な変換のために SWITCHOFFSET
関数を利用します。
<code class="language-sql">SELECT CONVERT(datetime, SWITCHOFFSET(CONVERT(datetimeoffset, MyTable.UtcColumn), DATENAME(TzOffset, SYSDATETIMEOFFSET()))) AS ColumnInLocalTime FROM MyTable</code>
代替 (詳細) メソッド:
より単純ではありますが、あまり洗練されていないメソッドでは、DATEADD
と DATEDIFF
を使用します。
<code class="language-sql">SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), MyTable.UtcColumn) AS ColumnInLocalTime FROM MyTable</code>
重要な考慮事項:
-
) は、競合状態が発生する可能性があるため、予測できない結果が生じる可能性があります。 上記の方法では、この問題を回避できます。この情報により、SQL クエリ内で効率的かつ正確な UTC から現地時間への変換を直接実行できるようになります。
以上がSQL で UTC 日時列を現地時間に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。