如何使用 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:如何在具有相同唯一键但访问期间不同的访问中查找不同的重复集?

如何在值列中搜索特定值并在 Big Query SQL 中替换为该特定值?

Big Query 或 SQL 重塑数据