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

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

Barbara Streisand
Barbara Streisandオリジナル
2025-01-17 04:36:09129ブラウズ

How to Convert UTC Datetime Columns to Local Time in SQL Server?

SQL Server クエリでの UTC から現地時間への変換

SQL Server クエリ内で UTC 日時列を現地時間に効率的に変換することは、正確なデータの表示と分析にとって重要です。 潜在的な落とし穴を回避する効果的な方法を次に示します:

SQL Server 2008 以降:

  • SWITCHOFFSET() および CONVERT(): この堅牢なメソッドはタイムゾーン オフセットを処理します:
<code class="language-sql">SELECT CONVERT(datetime, 
               SWITCHOFFSET(CONVERT(datetimeoffset, 
                                    MyTable.UtcColumn), 
                            DATENAME(TzOffset, SYSDATETIMEOFFSET()))) 
       AS ColumnInLocalTime
FROM MyTable</code>
  • DATEADD()DATEDIFF() 、および GETDATE(): より簡潔な代替案:
<code class="language-sql">SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), MyTable.UtcColumn) 
       AS ColumnInLocalTime
FROM MyTable</code>

重要な注意事項: - 演算子を使用した直接の日付の減算は、強く推奨されません。 これにより、潜在的な競合状態により予測できない結果が生じる可能性があります。

夏時間 (DST) に関する考慮事項:

上記のメソッドは本質的に DST 移行を処理しません。正確な DST 調整については、次の Stack Overflow リソースを参照してください。

SQL Server で夏時間開始関数と終了関数を作成する方法

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

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