2016-06-22 3 views
1

2つのタイムスタンプの間の正確な日数(たとえば1.45日)を取得したいとします。 BigQueryのdatediff関数はその日をラウンドし、2つのタイムスタンプ引数しか受け付けません。10進数の日数の差(週末を除く)

SELECT 
datediff(start_time_pac_tz, end_time_pac_tz) as Date_difference 

Date_difference

-6

また、私は週末を除外していますよ。どんな助けでも大歓迎です。

答えて

1

使用TIMESTAMP_TO_USEC(<timestamp>)、および=一日二を取る* 60 * 60 * 24

SELECT 
    ((TIMESTAMP_TO_USEC(end_time_pac_tz) - TIMESTAMP_TO_USEC(start_time_pac_tz))/(60 * 60 * 24) + 1) 
    -((WEEK(end_time_pac_tz) - WEEK(start_time_pac_tz)) * 2) 
    -(CASE WHEN DAYOFWEEK(start_time_pac_tz) = 1 THEN 1 ELSE 0 END) 
    -(CASE WHEN DAYOFWEEK(end_time_pac_tz) = 7 THEN 1 ELSE 0 END) 
    as Date_difference 
関連する問題