日期和InnoDB之间的Mysql

标签 mysql mysql-error-1064

我有一个问题:

SELECT * FROM MY TABLE WHERE END_TIME BETWEEN ? AND ?

END_TIME 是:

`END_TIME` datetime default NULL,

当我移动我的表时,此查询停止正常工作:

ENGINE=InnoDB

从 MyISAM 迁移到 InnoDB 会导致问题吗?

最佳答案

好吧,您更改了数据库引擎,现在以不同的方式处理空值。

SELECT * FROM MY TABLE WHERE END_TIME BETWEEN '2013-01-01 AND ?

有效查询

SELECT * FROM MY TABLE WHERE END_TIME BETWEEN '2013-01-01' AND null

总是返回 0 行

将您的查询重写为

SELECT * FROM MY TABLE WHERE END_TIME BETWEEN ? AND now()

SELECT * FROM MY TABLE WHERE END_TIME >=0

关于日期和InnoDB之间的Mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17510092/

相关文章:

python - 如何将数据从 Django 脚本发送到 MySQL

mysql - 在mysql中的创建表语句中将列设置为特定日期

c# - 此 SqlParameterCollection 不包含 ParameterName 为 '@UserId' 的 SqlParameter

c# - 从插入中获取 session - C# 和 MySQL

mysql - vb net在连接字符串mysql中设置超时时间

java - Mybatis:将部分SQL映射到POJO内部的HashMap

php - 用于更新下一行的 Mysql 查询

mysql总是使用最大连接数

python - 如何在 Django 中访问数据库但没有 ORM 支持

php - 如何在php中应用多个数据?