我正在尝试使用 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 |
+-----------------------------------+