google-bigquery - 更改 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。
你能帮忙吗?
解决方案
首先,您需要从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
推荐阅读
- python - pytorch 可以优化顺序操作(如张量流图或 JAX 的 jit)吗?
- javascript - 将初始数据从服务器传递到 React 应用程序
- spring - Spring JPA 多线程
- c# - 如何在 .NET Core 中修复(不抑制)CA1303(不将文字字符串作为本地化参数传递)
- ruby - 什么参数应该传递给其他方法
- java - 使用 Flink 监控新文件的目录以获取数据流
- c++ - 使用从 1 到 N 模板参数的数字初始化 std 数组
- elasticsearch - 哪个节点应该用于 ElasticSearch 的连接?
- awesome-wm - i3 在 awesome-wm 中的“for_window”等价物
- c# - 无法将类型“UnityEngine.Transform”转换为“UnityEngine.GameObject”