0

我的 mysql 数据库存在阻塞问题。

我有一个带有 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 个数据库。在第一个(创建一个较旧的转储)上一切都很好。在第二个(使用最近的转储文件创建)我遇到了问题。

所以我真的不知道可能是什么问题。

4

2 回答 2

0

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

select date(myDateField) from toto

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

于 2012-05-22T07:50:50.933 回答
0

我终于设法使它工作。我在不同的 linux 发行版上安装了相同的转储,现在它可以工作了。之前我有 Gentoo,现在我有 Ubuntu。所以Gentoo一定有问题。

于 2012-05-23T08:00:58.290 回答