如何在 BigQuery 的标准 SQL 中解析具有不同日期字符串的列中的值
Posted
技术标签:
【中文标题】如何在 BigQuery 的标准 SQL 中解析具有不同日期字符串的列中的值【英文标题】:How to Parse values in column with different date strings in Standard SQL in BigQuery 【发布时间】:2021-12-08 16:37:33 【问题描述】:我在 bigquery 的表中有一个列,它有不同的日期字符串,它们被格式化为字符串:
-------------------
| date |
-------------------
|2021-12-31 |
-------------------
|2021-12-25T15:45:00|
-------------------
|2021-11-15 |
-------------------
|2021-12-08T09:00:00|
-------------------
|2021-12-31 |
-------------------
我尝试使用
EXTRACT(DATE FROM PARSE_TIMESTAMP("%FT%T", "2021-12-08T15:45:00")) as date
但这不适用于 YYYY-MM-DD 日期字符串。我收到错误消息
解析输入字符串“2021-12-31”失败
当我尝试时
PARSE_DATE('%Y%m%d', LEFT("2021-12-21T15:45:00", 10)) AS date
对于这列的两种字符串类型,我得到相同的错误消息。
如何将日期中的字符串格式化为 YYYY-MM-DD 格式?
【问题讨论】:
【参考方案1】:考虑下面的简单方法
select *, date(date_string) as date_date
from your_table
如果应用于您的问题中的示例数据
with your_table as (
select '2021-12-31' date_string union all
select '2021-12-25T15:45:00' union all
select '2021-11-15' union all
select '2021-12-08T09:00:00' union all
select '2021-12-31'
)
输出是
【讨论】:
嗯,这再简单不过了。谢谢!这非常有效。以上是关于如何在 BigQuery 的标准 SQL 中解析具有不同日期字符串的列中的值的主要内容,如果未能解决你的问题,请参考以下文章