我的表中有兩個TIMESTAMP列:customer_birthday和purchase_date。我想創建一個查詢來顯示客戶年齡的購買次數,以創建圖表。如何計算BigQuery中的年齡?
但是,如何計算使用BigQuery的年限?換句話說,我怎樣才能獲得兩個TIMESTAMP之間的差異?因爲閏年,年齡計算不能使用天或小時進行,所以函數DATEDIFF(<timestamp1>,<timestamp2>)
不適用。
謝謝。
我的表中有兩個TIMESTAMP列:customer_birthday和purchase_date。我想創建一個查詢來顯示客戶年齡的購買次數,以創建圖表。如何計算BigQuery中的年齡?
但是,如何計算使用BigQuery的年限?換句話說,我怎樣才能獲得兩個TIMESTAMP之間的差異?因爲閏年,年齡計算不能使用天或小時進行,所以函數DATEDIFF(<timestamp1>,<timestamp2>)
不適用。
謝謝。
你可以計算它是在所有年是365天長天數,走差異化,再除以365例如:
SELECT (day2-day1)/365
FROM (
SELECT YEAR(t1) * 365 + DAYOFYEAR(t1) as day1,
YEAR(t2) * 365 + DAYOFYEAR(t2) as day2
FROM (
SELECT TIMESTAMP('20000201') as t1,
TIMESTAMP('20140201') as t2))
這將返回14.0,即使有中間閏年。如果希望將最終結果替換爲浮點數,則可以使用INTEGER()
函數來計算結果。
請注意,如果其中一個日期是閏日(二十九),它將顯示爲距一月一日的一年,但我認爲這聽起來像預期的行爲。
關於日期之間的區別 - 你可以考慮用戶定義函數(https://cloud.google.com/bigquery/user-defined-functions)用javascript日期庫,如Datejs或Moment.js
我剛剛創建[這個問題(https://開頭的代碼。 google.com/p/google-bigquery/issues/detail?id=170)查詢問題跟蹤器,以瞭解更多日期計算功能,包括兩個日期之間的差異。 – 2014-10-19 23:54:38