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

SQL で UTC 日時列を現地時間に変換するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-17 04:22:09
オリジナル
290 人が閲覧しました

How to Convert a UTC Datetime Column to Local Time in SQL?

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>
ログイン後にコピー

代替 (詳細) メソッド:

より単純ではありますが、あまり洗練されていないメソッドでは、DATEADDDATEDIFF を使用します。

<code class="language-sql">SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), MyTable.UtcColumn) 
       AS ColumnInLocalTime
FROM MyTable</code>
ログイン後にコピー

重要な考慮事項:

  • 日付の減算を避ける: 直接の日付の減算 (-) は、競合状態が発生する可能性があるため、予測できない結果が生じる可能性があります。 上記の方法では、この問題を回避できます。
  • 夏時間 (DST): 提供されるソリューションは、DST 調整を自動的に処理しません。正確な DST 処理については、SQL Server 内の DST 計算に対処するリソースを参照してください (例: DST 開始/終了関数の作成に関するスタック オーバーフローのディスカッション)。

この情報により、SQL クエリ内で効率的かつ正確な UTC から現地時間への変換を直接実行できるようになります。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート