2016-07-14 10 views
0

エポックタイムスタンプを使用するSQLのクエリデータに関する2つの質問があります。私は、このテキストを使用して、私のSELECT文で日付を変換することができるよ:SQLエポック時間 "場所"ステートメント

DATEADD(HOUR, -4, DATEADD(SECOND, aa.fldTimeOfEvent, '1970-01-01 00:00:00')) 

私は東の夏時間に変換する「-4時」を使用する必要がありました。夏時間が終わる11月にこれを-5に調整する必要があるかどうか不思議です。 SELECTステートメントを作成してDSTを自動的に調整する方法はありますか?これは自動化されたレポートの一部であり、私はこの値を変更するのを忘れる可能性があります。

もう1つの質問は、WHEREステートメントを使用して特定の日のデータを取得する方法です。たとえば、WHEREステートメントが今日(7/14/16)いつでも発生したすべてのエントリを取得するようにしたい場合は、どうすればよいでしょうか?私はこの文を試してみた:

WHERE DATEADD(HOUR, -4, DATEADD(SECOND, aa.fldTimeOfEvent, '1970-01-01 00:00:00')) = '2016-07-14' 

それだけでその日の深夜(と思う)に正確に等しいエントリをつかむために表示されます。私はいつでもその日に起きたすべてのエントリーを欲しい。

ご協力いただきありがとうございます。

+0

GetUTCDate()を使用すると、ハードコーディングする代わりに現在のオフセットを計算できます。 'SELECT DATEDIFF(時、GetUTCDate()、GETDATE())' - SQL Serverの使用 –

+1

SQL Serverを使用していますか?もしそうなら、あなたの質問にこのタグを追加してください。 –

+0

[カスタム関数を作成する]必要があります(http://stackoverflow.com/questions/19732896/how-to-create-daylight-savings-time-start-and-end-function-in-sql-server)夏時間を処理する。 –

答えて

0

まず簡単な部分CONVERT(日付、yourdatefield)

第2部分は、UTC時間についてここで説明し解決しました。Convert Datetime column from UTC to local time in select statement Epochtimeのオフセットを追加する必要があります。

+0

DSTを調整するためにGetUTCDate関数を使用することができました。私はCONVERT関数を実行する方法を理解できません。それは私にCONVERT(日付、 'イベントの時間')= '2016-07-11'を実行するとエラーメッセージ "変換が日付と時間の変換に失敗しました"また、私は自動的に昨日の日付をハードコーディングするのではなく、自動的に使用することを考えていますか? – AdamH

+0

実際のメッセージを貼り付けることはできますか? –

+0

私はついにそれを働かせました。 「Time of Event」という名前のコラムを入力と呼んでいるのが好きではないと思う。私はWHEREステートメントのSELECTステートメントから時間変換全体を使用しなければなりませんでした。 WHEREステートメントとSELECTステートメントが終了したのは以下のとおりです。 SELECT DATEADD(時間、DATEDIFF(時間、GetUTCDate()、GETDATE())、DATEADD(SECOND、aa。(1970年1月1日00:00:00 '))DATEADD(dd、0、DATEDIFF(dd、0、DATEADD(時、DATEDIFF時間、GetUTCDate()、GETDATE())、DATEADD(SECOND、aa .fldTimeOfEvent、 '1970-01-01 00:00:00'))))= CONVERT(日付、GETDATE()) – AdamH

0

私はあなたがSQL Serverを使用していると仮定しています。あなただけの今までのオフセット電流を必要とする場合、あなたはそれを計算するためにGETUTCDATE()を使用することができます。

SELECT DATEDIFF(hour,GetUTCDate(),GETDATE()) 

あなたはおそらくCLR機能を使用したいと思う他の日付のオフセットを計算する必要がある場合:https://dba.stackexchange.com/questions/28187/how-can-i-get-the-correct-offset-between-utc-and-local-times-for-a-date-that-is

どちらにリンク:あなたは、日付のみを比較して比較する前の日付にあなたの日付時刻を変換する必要がある場合

https://blogs.msdn.microsoft.com/sqlserverfaq/2011/07/29/how-to-convert-utc-time-to-local-time-in-sql/

関連する問題