MySql之间的日期:奇怪的行为

时间:2012-05-22 07:44:35

标签: mysql date between

我的mysql dabatase存在阻塞问题。

我有一个带有MySql数据库的php网站。 一切正常。

我只是将sql转储从一个旧的数据库服务器转移到一个新的数据库服务器,因为在这个新的服务器上我有一个奇怪的行为:

如下的查询:

select * from toto where date(myDateField) between '2001-01-01' and '2012-01-01';

不起作用。我的意思是它不会返回任何结果(也没有错误)。

如果我执行以下操作:

select * from toto where myDateField between '2001-01-01' and '2012-01-01';

有效。

我试着看看在我的新服务器上我的mysql系统变量是否不同但看起来都是一样的。 奇怪的是,在这台新的服务器上,我上周已经进行了另一次转储,一切正常。 现在我不知道。

我无法修改我的所有php文件,因为该网站在其他服务器上运行正常。我只是想找到问题和解释。

任何人都对此有任何暗示吗?

更新:

我做了更多测试。 我在同一台服务器上有2个数据库。 在第一个(创建一个旧的转储)一切都没关系。 在第二个(使用最近的转储文件创建)我有问题。

所以我真的不知道会出现什么问题。

2 个答案:

答案 0 :(得分:0)

首先检查您在服务器中获取的格式

select date(myDateField) from toto

基于条件之间的格式使用...日期格式可能会从服务器更改为服务器,即dd // mm // yyyy或yy // mm / dd检查....

答案 1 :(得分:0)

我终于成功了。我在不同的Linux发行版上安装了相同的转储,现在它可以工作了。在我有Gentoo之前,现在我有了Ubuntu。 所以在Gentoo上一定是错的。

相关问题