MySQL STR_TO_DATE函数不适用于时间

时间:2016-12-25 05:38:46

标签: php mysql phpmyadmin

我只想与其他时间字符串进行比较,因此我使用STR_TO_DATE函数将我的时间字符串转换为日期时间格式

以下声明对我来说很好,所以我认为MySQL没有任何问题

SELECT STR_TO_DATE('26/04/2011', '%d/%m/%Y');

但我不知道为什么低于一个人不适合我

SELECT STR_TO_DATE('11:59:59','%h:%i:%s');  

当我在PhpMyAdmin的SQL控制台中运行时,上面的语句总是返回NULL

1 个答案:

答案 0 :(得分:0)

这确实是因为SQL模式NO_ZERO_DATE。您应该已经看到当Anand Rockzz链接到手册时,但该链接只是解释的一半。从MySQL 5.7.4开始,不推荐使用该设置。在您的第一个示例中,您要设置日期;在第二个中,NO_ZERO_DATE导致返回NULL,因为您没有指定日期。从5.7.8开始,NO_ZERO_DATENO_ZERO_IN_DATE已包含在默认的sql_mode值中。根据{{​​3}},好像已经部分还原了弃用和删除(从5.7.8开始),因此您可以在my.cnf(或每个会话)中明确设置此项

您还应该参考有关the manual指令的手册。