【问题标题】:Converting STRING to DATE in BigQuery在 BigQuery 中将 STRING 转换为 DATE
【发布时间】:2021-06-05 08:37:13
【问题描述】:

我在 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

【问题讨论】:

    标签: string date casting google-bigquery case


    【解决方案1】:

    您可以使用正则表达式模式来断言 %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;
    

    【讨论】:

      猜你喜欢
      • 2020-07-18
      • 1970-01-01
      • 1970-01-01
      • 2017-08-20
      • 2018-07-06
      • 1970-01-01
      • 2017-11-17
      • 2021-05-03
      • 1970-01-01
      相关资源
      最近更新 更多