2017-04-13 10 views
1

に週/月の最初の日を取得、私は2017-04-09を返しのBigQuery:BigQueryのの<strong>レガシー</strong> SQLでは、標準SQL

SELECT DATE((UTC_USEC_TO_WEEK(TIMESTAMP_TO_USEC(TIMESTAMP('2017-04-13 20:58:06 UTC')), 0))) 

を使用して日付の週のスタートを切ることができます。

BigQueryの標準 SQLでこれを行う方法はありますか? UTC_USEC_TO_WEEKUTC_USEC_TO_MONTHの等価物はないようです。

+0

のためのページである、SQL DBベンダーは、一般的に、彼らは日付を処理する方法にばらつきがあります。具体的なSQLプラットフォームは何ですか? –

+0

これはあなたを助けるかもしれませんhttp://stackoverflow.com/questions/10007861/getting-the-starting-and-ending-date-of-week-in-sql-server –

+0

@WesH私はGoogleのBigqueryを使用しています。私は彼らが使用しているSQLの正確な風味がわからない –

答えて

3

BigQueryには、あなたが望むことができるTIMESTAMP_TRUNCという名前の関数があります。これは、日付datepartとともに使用する場合、LegacySQLのUTC_USEC_TO_DAY(t)の代わりに参照されます。また、あなたの要件を満たす可能性のあるパラメータとして、週と月を受け入れます。 SQL標準はありますがここで

TIMESTAMP_TRUNC(TIMESTAMP '2008-12-25 15:30:00', WEEK, 'UTC') 

migrating from Legacy to Standard sql

+0

良い発見!魅力のように動作します。それはまさに私が探していたものです、ありがとう! –

関連する問題