无法在 BQ MySQL 中解析输入字符串日期时间

Posted

技术标签:

【中文标题】无法在 BQ MySQL 中解析输入字符串日期时间【英文标题】:Failed to parse input string datetime in 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 【参考方案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]) 听起来您的日期时间列不是日期时间数据类型

以上是关于无法在 BQ MySQL 中解析输入字符串日期时间的主要内容,如果未能解决你的问题,请参考以下文章

无法解释的日期:“2018年3月1日星期四下午12:43:38 IST”

如何从 HTML5 日期输入中解析日期?

无法在 C# 中解析“2020 年 9 月 4 日”或“2020 年 9 月 4 日”日期字符串

错误代码:38 DB::Exception:无法解析日期:值太短:无法从字符串解析日期:执行“FUNCTION toDate()”时

SimpleDateFormat 不解析毫秒,MySql 正在舍入日期

使用 bq 将数据加载到 BigQuery 的自定义日期格式?