[解決済み】select文のDatetimeカラムをUTCからローカルタイムに変換する。
2022-04-05 01:57:42
質問
SQLのselectクエリをいくつか行っていますが、クエリ結果に現地時間として表示するために、UTC datetimeカラムを現地時間に変換したいと考えています。この変換はコードで行うのではなく、データベースに対して手動でランダムにSQLクエリを実行する際に行いたいと考えています。
どのように解決するのですか?
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
何をするにしても
しない
使用
-
なぜなら、この操作はアトミックではなく、 システムの日付とローカルの日付が異なる時間にチェックされる (つまり、アトミックではない) ことで、 レースコンディションによる不確定な結果が生じることがあるからです。
なお、この回答は夏時間を考慮していません。もし、夏時間の調整を入れたい場合は、以下のSOの質問もご覧ください。
関連
-
[解決済み】データベースへの「ネイティブ」SQL接続を使用するとはどういう意味ですか?
-
[解決済み] ORA-01790: 式は、対応する式と同じデータ型でなければならないエラーが発生するケース
-
[解決済み] エラー (ORA-00923: 期待された場所に FROM キーワードが見つかりませんでした)
-
[解決済み] PLS-00428: この SELECT 文では INTO 句が必要です。
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] ...値に挿入する ( SELECT ... FROM ... )
-
[解決済み] T-SQLでテーブル変数をSELECT INTOする
-
[解決済み] INTからVARCHARへの変換 SQL
-
[解決済み] SQL Server テーブルからランダムな n 行を選択する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】CREATE VIEW は、バッチ内の唯一のステートメントでなければなりません。
-
[解決済み] テスト
-
[解決済み】SQL ServerでIdentityカラムを更新する方法は?
-
[解決済み】Athena: スケールファクターでリソースを使い果たすクエリ
-
[解決済み】INTERSECTとINNER JOINは根本的に違うのか?[重複している]
-
[解決済み】SQL Server: 無効なカラム名
-
[解決済み】SQL Serverは「集約関数やサブクエリを含む式に対して集約関数を実行できない」が、Sybaseはできる。
-
[解決済み] ORA-01779: キーが保存されていないテーブルにマップされる列を変更できません。
-
[解決済み] ORA-00920: 無効な関係演算子
-
[解決済み] C#のFindTimeZoneById()で使用するためのタイムゾーンIDのリスト?