如何使用 Big Query SQL Standard 将日期 YYYY-MM-DD 转换为字符串 YYYYMM?
Posted
技术标签:
【中文标题】如何使用 Big Query SQL Standard 将日期 YYYY-MM-DD 转换为字符串 YYYYMM?【英文标题】:How to Convert a date YYYY-MM-DD to a string YYYYMM, using Big Query SQL Standard? 【发布时间】:2020-11-20 04:30:42 【问题描述】:得到一个带有 YYYY-MM-DD 的 Export_date 字段。我想得到 YYYYMM 作为输出。
输入:2020-06-02 预计产量:202006
我在 GCP Bigquery 中使用 SQL 标准
如何使用 Big Query SQL 标准将日期 YYYY-MM-DD 转换为字符串 YYYYMM?
我试过这个功能
substr(cast(export_date as string), 0,7) as date,
但我得到了 YYYY-DD 作为输出 (2020-06)
谢谢
【问题讨论】:
如果您的列是 STRING 而不是 DATE(正如您在 cmets 中对 Gordon 的回答所说的那样),为什么在这种情况下您的尝试中有cast(export_date as string)
?!见How to create a Minimal, Reproducible Example
【参考方案1】:
你可以使用format_timestamp
:
SELECT format_timestamp('%Y%m', '2020-06-02')
它回馈'202006'
。
【讨论】:
【参考方案2】:一个简单的方法是:
select extract(year from export_date) * 100 + extract(month from export_date) as yyyymm
您也可以使用date_format()
将其格式化为字符串。
如果您的值存储为字符串而不是日期,则只需使用字符串函数:
select concat(substr(export_date, 1, 4), substr(export_date, 6, 2))
【讨论】:
收到此错误消息:对于参数类型的函数 EXTRACT 没有匹配的签名:DATE_TIME_PART FROM STRING。还是谢谢! @CallmeJezza 。 . .您的问题暗示该列是一个日期,应存储为date
。如果是字符串,则使用字符串操作即可。以上是关于如何使用 Big Query SQL Standard 将日期 YYYY-MM-DD 转换为字符串 YYYYMM?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Big Query SQL Standard 将日期 YYYY-MM-DD 转换为字符串 YYYYMM?
如何将 Google Cloud SQL 与 Google Big Query 集成
基于会话的 Google Big Query SQL 聚合数据
BIG QUERY SQL:如何在具有相同唯一键但访问期间不同的访问中查找不同的重复集?