我的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个数据库。 在第一个(创建一个旧的转储)一切都没关系。 在第二个(使用最近的转储文件创建)我有问题。
所以我真的不知道会出现什么问题。
答案 0 :(得分:0)
首先检查您在服务器中获取的格式
select date(myDateField) from toto
基于条件之间的格式使用...日期格式可能会从服务器更改为服务器,即dd // mm // yyyy或yy // mm / dd检查....
答案 1 :(得分:0)
我终于成功了。我在不同的Linux发行版上安装了相同的转储,现在它可以工作了。在我有Gentoo之前,现在我有了Ubuntu。 所以在Gentoo上一定是错的。