【问题标题】:Convert String to Date in Big Query error在 Big Query 错误中将字符串转换为日期
【发布时间】:2020-11-11 09:28:50
【问题描述】:

我有一个从表中提取的字符串字段,我正在尝试将其转换为我创建的视图中的日期。不过,我在尝试 Cast as a date 时不断收到错误消息。该字段的格式如下所示:

2020 年 7 月 19 日或 2020 年 8 月 8 日等。

我收到一个错误提示

“无法解析输入字符串“2020 年 7 月 19 日”

或尝试使用 DATE_Parse 时数据中的其他日期之一。或者我得到

“无效日期:2020 年 8 月 8 日”

如果我尝试使用 CAST 函数。

以下是我尝试 CAST 日期时的查询:

select
noteattributes.value.name as name_type, noteattributes.value.value as name_value, CAST(noteattributes.value.value as DATE) as DATE_TEST, order_number
from test.orders,
unnest(note_attributes) as noteattributes
where noteattributes.value.name = 'Pickup-Date'

【问题讨论】:

    标签: date casting google-bigquery


    【解决方案1】:

    将字符串转换为日期

    以下是 BigQuery 标准 SQL

    您应该使用 PARSE_DATE 而不是 CAST,如下例所示

    PARSE_DATE('%B %d, %Y', date_as_string)
    

    您可以使用下面的示例进行测试,玩这个

    #standardSQL
    WITH `project.dataset.table` AS (
      SELECT 'July 19, 2020' date_as_string UNION ALL
      SELECT 'August 8, 2020'
    )
    SELECT PARSE_DATE('%B %d, %Y', date_as_string) AS date_as_date
    FROM `project.dataset.table`    
    

    有输出

    Row date_as_date     
    1   2020-07-19   
    2   2020-08-08   
    

    【讨论】:

    • 很高兴它对你有用。如果有帮助,也考虑投票给答案:o)
    猜你喜欢
    • 2019-08-18
    • 1970-01-01
    • 2013-10-03
    • 2020-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-29
    • 2013-06-28
    相关资源
    最近更新 更多