php - MySQL STR_TO_DATE 函数暂时不起作用

标签 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

最佳答案

这确实是因为 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 值中。根据the manual ,似乎已部分恢复弃用和删除(从 5.7.8 开始),因此您可以在 my.cnf(或每个 session )中明确设置它。

您还应该引用有关 NO_ZERO_DATE 的手册指令。

关于php - MySQL STR_TO_DATE 函数暂时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41318941/

相关文章:

PHPMyAdmin 如何处理数据类型关系集

php - 如何使用输入字段内选择选项的当前值

php - Mysql插入大数据

javascript - yii 文本字段的 onkeypress

php - 在没有 SQL 注入(inject)的情况下从 mysql 中的用户保存 "Messages"

php - SQL注入(inject)绕过mysql_real_escape_string()

mysql - 尝试编写 MySQL 触发器以替换 phpmyadmin 上的 CHECK 约束时出现语法错误

php - 如何在cakephp中的另一个条件中使用条件

php - Laravel - 高级碳日期查询

mysql - laravel5.2中如何从两个不同的表中获取记录