在 BigQuery 中使用 DATE_TRUNC 的正确方法是啥?

Posted

技术标签:

【中文标题】在 BigQuery 中使用 DATE_TRUNC 的正确方法是啥?【英文标题】:What is the correct way to use DATE_TRUNC in BigQuery?在 BigQuery 中使用 DATE_TRUNC 的正确方法是什么? 【发布时间】:2017-01-20 19:19:57 【问题描述】:

我想根据当前日期获取一年中的第一天。以下查询有效。

#standardSQL
SELECT DATE_TRUNC(DATE '2017-01-20', YEAR) as First_day_of_year

但是,使用 CURRENT_DATE() 代替日期值时出现语法错误。

#standardSQL
SELECT DATE_TRUNC(DATE CURRENT_DATE(), YEAR) as YEAR

错误:语法错误:应为“)”但得到标识符“CURRENT_DATE”

我该如何纠正这个问题?

【问题讨论】:

【参考方案1】:

CURRENT_DATE() 已经是 DATE 类型所以你应该使用如下

#standardSQL
SELECT DATE_TRUNC(CURRENT_DATE(), YEAR) as YEAR

【讨论】:

哦.. Date 关键字实际上是在投射它。感谢您的快速帮助。 @Mikhail Berlyant 你碰巧知道 YEAR 是什么数据类型吗?是否可以将其定义为变量,例如声明一个???; SET a = 年; @riscarrott - 随时发布您的问题,我们将很乐意回答:o) ***.com/questions/60176167/… :)

以上是关于在 BigQuery 中使用 DATE_TRUNC 的正确方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Bigquery:根据不同的 date_trunc 多次运行查询并将结果合并,而不是多个 UNION ALL

BigQuery如何获得每月的总数?

BigQuery 从日期字段中提取星期作为日期范围

如何将日期转换为 CDT 并使用 BigQuery 制作连接字符串?

如何在 Google BigQuery 中将日期解析为周年?

如何使用带有变量的 date_trunc 作为时间戳?