【发布时间】:2017-09-28 05:05:01
【问题描述】:
我正在尝试使用 STR_TO_DATE 函数格式化包含时间值的字符串。时间值为:小时(0-23)不带前导零+分钟(00-59) 例如800、1245 或 1535。为了格式化这些值,我尝试使用 MySQL5.5 文档中描述的 %k 小时说明符,但如果小时没有前导零,这将不起作用:
不起作用:
+-----------------------------------+
| SELECT STR_TO_DATE("800","%k%i"); |
+-----------------------------------+
| NULL |
+-----------------------------------+
按预期工作:
+------------------------------------+
| SELECT STR_TO_DATE("1855","%k%i"); |
+------------------------------------+
| 18:55:00 |
+------------------------------------+
+-----------------------------------+
| SELECT STR_TO_DATE("0800","%k%i");|
+-----------------------------------+
| 08:00:00 |
+-----------------------------------+
【问题讨论】:
-
对我来说,这三个都给出 NULL。
-
我正在使用 MySQL 5.5 并仔细检查了语句(在控制台和 web-gui 中),它们给出了上述(错误)输出
标签: mysql time datetime-format str-to-date