首页 > 解决方案 > 更改 bigquery 中的日期格式

问题描述

我有一个日期列作为 dd-mm-yyyy。我想在 bigquery 中将其转换为 yyyy/mm/dd。我编写了以下查询:SELECT cast(format(Date, 'yyyy/mm/dd') as string) as Date FROM t1.

错误是:模式“23/04/2020”的 FORMAT 参数太多;预期 1;得到2。

你能帮忙吗?

标签: google-bigquery

解决方案


首先,您需要从dd-mm-yyyy字符串中解析日期,然后将其格式化,yyyy/mm/dd如下所示

FORMAT_DATE('%Y/%m/%d', PARSE_DATE('%d-%m-%Y', day))    

您可以使用虚拟数据进行测试,使用上面的示例,如下例所示

#standardSQL
WITH `project.dataset.table` AS (
  SELECT '15-01-2020' day UNION ALL
  SELECT '05-10-2019'
)
SELECT day, FORMAT_DATE('%Y/%m/%d', PARSE_DATE('%d-%m-%Y', day)) AS formated_day
FROM `project.dataset.table`     

带输出

Row day         formated_day
1   15-01-2020  2020/01/15   
2   05-10-2019  2019/10/05   

推荐阅读