私はSQLクエリに苦しんでいます - 選択出力でUTC時間変換を持つ基本的なSELECT文です。私はこれを検索し、それらのすべてを介して、次のクエリに到着しましたが、それは私のために動作していないようです。魔法が起こっすべき場所SQLクエリ出力のUTC時刻のLOCALへの変換
SELECT [Id]
,[BaseSource]
,[Source]
,[Output]
,[SessionId]
,[Timestamp]
,(SELECT DATEADD(MILLISECOND,DATEDIFF(MILLISECOND,getutcdate(),GETDATE()),[Timestamp])) as LocalTime
FROM [MYDB].[dbo].[SystemOutput]
ORDER BY [Timestamp] DESC
この行はあるが、代わりに私は何の変換は全く起こっていない、タイムスタンプ列の値の完全一致を得る:
( DATEADD(ミリ秒、SELECT
これを取得する方法を知っている人はいますか?ありがとうございました。ありがとうございました。ありがとうございました。ありがとうございました。クエリを実行していない人の -
おかげ
これは良いアプローチではありません。これは、SQL Server *のタイムゾーン*が必要であると仮定しています。また、* current * offsetはすべての値に適用可能であると仮定しています。多くの場合、そうではありません(たとえば、DSTのため)。あなたは実際に何をしたいのかを教えてください(その「ローカル」は何ですか?)また、どのバージョンのSQL Serverを使用していますか? –
こんにちは、返信いただきありがとうございます。まず、私は自分のクエリを作成し、この特定のテーブルの出力をより読みやすくするために、自分の個人的/開発的な使い方であることを強調したいと思います。タイムスタンプ通常、UTC時刻の変換はアプリケーションレベルで行われているため、SQLクエリー内でdatetime変換を行うことは間違いありません。私が探しているのは、SELECT出力のタイムスタンプからローカル(またはPST時間)を取得することです。私は、本番環境のSQL 2016サーバーに当たっています。 – Nugs