Epoch Time
に保存されている日付があり、Date
から抽出したいです。以下のコードを試したところ、null
が出力されました。
date_add( (timestamp( Hp.ASSIGN_TIME)), 1970-01-01,"second" ) as Extracted_date_Epoch
旧形式(1424184621000000)
もう一つ質問。以下のコードは、営業日ではなく正確に日数を提供します。すべての日を提供します。エポック時間に2回保存された営業日だけを取得することは可能ですか?
INTEGER(((Hp.ASSIGN_TIME - Hp.ARRIVAL_TIME) / 1000000) / 86400) as Days
timestamp
をdate
に変換するには、 BigQuery日付/時刻関数 を使用できます。
SELECT TIMESTAMP(1424184621000000) # 2015-02-17 14:50:21 UTC
SELECT TIMESTAMP_MICROS(1230219000000000) # 2008-12-25 15:30:00 UTC
SELECT TIMESTAMP_MILLIS(1230219000000) # 2008-12-25 15:30:00 UTC
SELECT DATE(TIMESTAMP(1424184621000000)) # 2015-02-17
SELECT DATE(TIMESTAMP('2015-02-17')) # 2015-02-17
SELECT INTEGER(TIMESTAMP('2015-02-17')) # 1424131200000000
2つの日付の間の日数(たとえば、6/1/15〜6/20/15)を計算するには、次のようにします。
SELECT (DATEDIFF(TIMESTAMP('2015-06-20'), TIMESTAMP('2015-06-01')) + 1)
最後に、営業日を計算するには、次を使用できます。
SELECT
(DATEDIFF(TIMESTAMP('2015-06-20'), TIMESTAMP('2015-06-01')) + 1)
-(INTEGER((DATEDIFF(TIMESTAMP('2015-06-20'), TIMESTAMP('2015-06-01')) + 1) / 7) * 2)
-(CASE WHEN DAYOFWEEK(TIMESTAMP('2015-06-01')) = 1 THEN 1 ELSE 0 END)
-(CASE WHEN DAYOFWEEK(TIMESTAMP('2015-06-20')) = 7 THEN 1 ELSE 0 END)
これは土曜日と日曜日を週末とみなし、休日を含まない単純な営業日の計算です。
BigQueryでstandardSQLダイアレクトを使用している場合、この関数は人間が読めるタイムスタンプTIMESTAMP_MICROS(1424184621000000)-> 2015-02-17 14:50:21 UTCに変換します。参照: https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#timestamp-string
または、TIMESTAMP_SECONDS(visitStartTime)
を秒で指定します。 Google Analyticsで。
レガシーSQLオプションがある場合、1524375336000などのミリ秒単位のUNIXエポック時間の列が与えられた場合、質問1に回答するには、
SELECT USEC_TO_TIMESTAMP(Hp.ASSIGN_TIME * 1000) AS the_date FROM table;
を使用しました
_╔═══╦═══════════════╦═════════════════════════════╗
║ ║ ASSIGN_TIME ║ the_date ║
╠═══╬═══════════════╬═════════════════════════════╣
║ 1 ║ 1524375336000 ║ 2018-04-22 05:35:36.000 UTC ║
╚═══╩═══════════════╩═════════════════════════════╝
_
USEC_TO_TIMESTAMP(<expr>)
マイクロ秒単位のUNIXタイムスタンプをTIMESTAMPデータ型に変換します。例:
SELECT USEC_TO_TIMESTAMP(1349053323000000);
https://cloud.google.com/bigquery/docs/reference/legacy-sql#usec_to_timestamp