BigQuery 标准 SQL 中的“yearweek”函数的等价物是啥?

Posted

技术标签:

【中文标题】BigQuery 标准 SQL 中的“yearweek”函数的等价物是啥?【英文标题】:What is the equivalent of 'yearweek' function in BigQuery standard SQL?BigQuery 标准 SQL 中的“yearweek”函数的等价物是什么? 【发布时间】:2019-03-11 14:46:39 【问题描述】:

我需要准确提取表中不同日期的“yearweek”,但在 BigQuery(标准 SQL / Legacy SQL)中找不到“yearweek”的任何匹配项。

谢谢

【问题讨论】:

【参考方案1】:

对于字符串形式的结果,将'%Y%W' 与“格式”一起使用。例如:

select format_date('%Y%W', current_date)

【讨论】:

谢谢!这只是激发了我写查询的灵感:) @helloworld 查看format elements table 获取有关这些和其他格式说明符的文档。【参考方案2】:

标准 SQL:

   select 
   concat(EXTRACT(ISOYEAR FROM current_date), EXTRACT(ISOWEEK FROM current_date))

【讨论】:

【参考方案3】:

我建议如下:

select format_date('%G-%V', your_date)

这遵循 ISO-8601 标准,即可以跨越年份的周数编号。此 ISO 标准在 Bigquery 中实现,%G 是年份,%V 是星期。

@ornachshon 的答案是正确的(如果你从我的代码中去掉破折号,你会得到等效的输出),但有点令人费解。 @gordon-linoff 的答案是不正确的,因为它将在年初/年底分开几周。

【讨论】:

以上是关于BigQuery 标准 SQL 中的“yearweek”函数的等价物是啥?的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery:标准 SQL 中的 PI()

BigQuery 标准 SQL 中的“yearweek”函数的等价物是啥?

Google BigQuery 中的 TIMESTAMP 和标准 SQL

标准 sql 中的 BigQuery 过滤记录

标准 SQL 中的 BigQuery 连接数组

是否可以使用“$”装饰器访问标准 SQL 中的 BigQuery 分区?