2017-04-13 127 views
1

BigQuery中的遗产 SQL,我可以用BIGQUERY:获取周/月的第一天,在标准的SQL

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

返回2017-04-09获得本周开始的日期。

有没有办法在BigQuery的标准 SQL中做到这一点?似乎没有UTC_USEC_TO_WEEKUTC_USEC_TO_MONTH的任何等价物。

+0

的页面虽然有一个SQL标准,SQL数据库厂商通常在如何处理日期的变化。你在寻找什么特定的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这可能做你想做的。与Day datepart一起使用时,LegacySQL将其替换为UTC_USEC_TO_DAY(t)。它还接受周和月作为可以满足您的要求的参数。

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

这里是migrating from Legacy to Standard sql

+0

好找!奇迹般有效。这正是我所期待的,谢谢! –