如何解决在 BigQuery 中将 STRING 转换为 DATE
我在 BigQuery 的表中有一个名为 order_date 的列,它的数据类型为 STRING。它有两种类型的值 10/2/2020 和 2020-10-02。 PARSE_DATE('%m/%d/%Y',order_date) 将 10/2/2020 转换为 DATE,CAST(order_date as DATE) 将 2020-10-02 转换为 DATE。我写了下面的 CASE 语句来处理这两种情况,但它出错了。
CASE
WHEN FORMAT(order_date) ='%m/%d/%Y'THEN PARSE_DATE('%m/%d/%Y',order_date)
ELSE CAST (order_date AS DATE) END AS order_date
解决方法
您可以使用正则表达式模式来断言 %m/%d/%Y
变体:
SELECT
CASE WHEN REGEXP_CONTAINS(order_date,r"^\d{2}/\d{2}/\d{4}$")
THEN PARSE_DATE('%m/%d/%Y',order_date)
ELSE CAST(order_date AS DATE) END AS order_date
FROM yourTable;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。