Bigquery:在标准SQL中获取星期/月的第一天

时间:2017-04-13 13:39:37

标签: google-bigquery

在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似乎没有任何等价物。

2 个答案:

答案 0 :(得分:4)

看起来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

的页面

答案 1 :(得分:0)

这是现在可以使用的更好的选择:

select DATE_TRUNC(date( '2008-12-25 15:30:00'), month)