SQL クエリの UTC 日時列を現地時間に変換します
SQL クエリでの UTC 日時の処理は、特にローカル タイム ゾーンで表示する必要がある場合に不便な場合があります。 コードベースの変換の必要性を排除して、UTC 日時を現地時間に変換する簡単な手法があります。
SQL Server 2008 以降のソリューション:
SQL Server 2008 以降の場合は、次のクエリを使用します:
<code class="language-sql">SELECT CONVERT(datetime, SWITCHOFFSET(CONVERT(datetimeoffset, MyTable.UtcColumn), DATENAME(TzOffset, SYSDATETIMEOFFSET()))) AS ColumnInLocalTime FROM MyTable</code>
代替構文:
代わりに、次の簡略版を使用することもできます:
<code class="language-sql">SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), MyTable.UtcColumn) AS ColumnInLocalTime FROM MyTable</code>
注: 日付の減算は避けてください
- 演算子を使用して日付を減算することは、競合状態により不確定な結果が生じる可能性があるため推奨されないことに注意することが重要です。
夏時間 (DST) を考慮する
この提供されるソリューションでは DST 調整が考慮されていません。必要に応じて、次のスタック オーバーフローの質問を参照してください:
//m.sbmmt.com/link/95743904f0de5aa6327dee27efdc81b4
以上がSQL Server で UTC 日時を現地時間に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。