【问题标题】:Failed to parse input string datetime in BQ MySQL无法在 BQ MySQL 中解析输入字符串日期时间
【发布时间】:2021-05-19 17:09:32
【问题描述】:

我的表中有一个日期时间列,值如下所示:

datetime
2009/03/04 11:06:29
2009/06/05 09:22:13
2009/07/05 09:24:43

想要的输出是:

datetime
2009-03-04 
2009-06-05 
2009-07-05 

我尝试了以下方法:

PARSE_DATETIME('%m/%d/%Y', datetime) AS datetime

它给了我一个错误:Failed to parse input string 2009/03/04 11:06:29

【问题讨论】:

  • 你可以试试DATE_FORMAT(STR_TO_DATE(your_date_field, '%Y/%d/%m %H:%i:%s'), '%m/%d/%Y')。演示 - sqlfiddle.com/#!9/a7abdf/8/0 现有日期格式 - %Y/%d/%m %H:%i:%s,新格式 - %m/%d/%Y

标签: mysql date datetime parsing google-bigquery


【解决方案1】:

试试left:

select left(datetime, 10) from mytable

【讨论】:

    【解决方案2】:

    您已经有一个日期时间列,因此您不需要解析它。解析适用于当您有字符串输入并且想要将其转换为日期时间时。

    您需要使用FORMAT_DATETIME() 来格式化列,并且您需要使用与您想要的匹配的格式字符串。

    SELECT FORMAT_DATETIME('%Y/%m/%d', datetime) ...
    

    【讨论】:

    • 遇到错误:No matching signature for function FORMAT_DATETIME for argument types: STRING, STRING. Supported signatures: FORMAT_DATETIME(STRING, DATETIME); FORMAT_DATETIME(STRING, TIMESTAMP, [STRING])
    • 听起来您的日期时间列不是日期时间数据类型
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-24
    相关资源
    最近更新 更多