无法在 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”
无法在 C# 中解析“2020 年 9 月 4 日”或“2020 年 9 月 4 日”日期字符串
错误代码:38 DB::Exception:无法解析日期:值太短:无法从字符串解析日期:执行“FUNCTION toDate()”时