标准 SQL (BigQuery) 中整数 YYYYMMDD 的日期
Posted
技术标签:
【中文标题】标准 SQL (BigQuery) 中整数 YYYYMMDD 的日期【英文标题】:Date to Integer YYYMMDD in Standar SQL (BigQuery) 【发布时间】:2021-02-03 17:52:14 【问题描述】:我需要在 Bigquery 中将日期转换为格式为 YYYMMDD 的整数。
我试过了:
PARSE_DATE('%Y%m%d', response_date)
但它不起作用(错误:参数类型的函数 PARSE_DATE 没有匹配的签名:STRING,DATE。支持的签名:PARSE_DATE(STRING, STRING) at [1:8])
response_date:日期格式
想要的结果:20210201 作为整数或字符串
如果有人知道正确的语法,那将非常有帮助。谢谢!
【问题讨论】:
【参考方案1】:一种方法是算术:
select extract(year from response_date) * 10000 + extract(month from response_date) * 100 + extract(day from response_date)
另一种方法是FORMAT_DATE()
:
select cast(format_date('%Y%m%d', response_date) as int64)
【讨论】:
【参考方案2】:另一种选择(可能看起来很有趣/很傻,但很有效)
select translate('' || response_date, '-', '')
然后你可以对结果字符串进行任何你需要的转换,或者保持原样(作为字符串)
...可以通过以下查询轻松测试
select translate('' || current_date(), '-', '')
有输出
但显然 - 最好的方法是使用 FORMAT_DATE(),如 Gordon 的回答 :o)
【讨论】:
以上是关于标准 SQL (BigQuery) 中整数 YYYYMMDD 的日期的主要内容,如果未能解决你的问题,请参考以下文章
BigQuery 中用于 Google Analytics 数据的标准 SQL 还是旧版 SQL?