使用AM / PM时DATE_FORMAT和STR_TO_TIME出现问题

时间:2018-03-14 03:52:07

标签: mysql

我需要获得字符串的24小时时间,但由于某些原因我只能使用Mysql获得12小时。

SELECT STR_TO_DATE('3/13/2018 9:28:07 PM',  '%m/%d/%Y %T');
+-----------------------------------------------------+
| STR_TO_DATE('3/13/2018 9:28:07 PM',  '%m/%d/%Y %T') |
+-----------------------------------------------------+
| 2018-03-13 09:28:07                                 |
+-----------------------------------------------------+

我尝试了各种各样的方法,并且认为它正常工作,它在中午之前工作....

我正在尝试使用它将返回的结果限制为自上次运行查询以来已更改的内容。

2 个答案:

答案 0 :(得分:1)

%T表示24小时制表示法的时间,因此STR_TO_DATE忽略了您的时间的PM / AM部分。你需要使用%r。有关详细信息,请参阅manual

答案 1 :(得分:0)

您需要将其转换为带有时区的日期时间,然后使用日期格式%T。

选择DATE_FORMAT(STR_TO_DATE('3/13/2018 9:28:07 PM','%m /%d /%Y%r'),'%T')

21时28分07秒