2014-10-18 105 views
2

我的表中有兩個TIMESTAMP列:customer_birthday和purchase_date。我想創建一個查詢來顯示客戶年齡的購買次數,以創建圖表。如何計算BigQuery中的年齡?

但是,如何計算使用BigQuery的年限?換句話說,我怎樣才能獲得兩個TIMESTAMP之間的差異?因爲閏年,年齡計算不能使用天或小時進行,所以函數DATEDIFF(<timestamp1>,<timestamp2>)不適用。

謝謝。

回答

0

你可以計算它是在所有年是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()函數來計算結果。

請注意,如果其中一個日期是閏日(二十九),它將顯示爲距一月一日的一年,但我認爲這聽起來像預期的行爲。

+1

我剛剛創建[這個問題(https://開頭的代碼。 google.com/p/google-bigquery/issues/detail?id=170)查詢問題跟蹤器,以瞭解更多日期計算功能,包括兩個日期之間的差異。 – 2014-10-19 23:54:38