【发布时间】:2017-06-20 22:36:55
【问题描述】:
在我的一个项目中,我使用函数STR_TO_DATE() 将字符串转换为基于 fmt 格式字符串的日期值。例如将字符串转换为 DATE 值:
SELECT STR_TO_DATE('21-5-2013','%d-%m-%Y'); // returns 2013-05-21
但是当我将时间字符串转换为 TIME 值时,我得到了一些奇怪的行为:
SELECT STR_TO_DATE('203005','%h%i%s'); // returns null
SELECT STR_TO_DATE('19:30:05','%h:%i:%s'); // returns null
SELECT STR_TO_DATE('113005','%h%i%s'); // returns 11:30:05
SELECT STR_TO_DATE('01:30:05','%h:%i:%s'); // returns 01:30:05
我在 StackOverflow 中找到 here 的答案之一是:
这确实是因为 SQL 模式 NO_ZERO_DATE。
但我仍然对函数的行为很感兴趣。关注link
,您可以轻松查看我在说什么【问题讨论】: