php和mySQL日期不起作用 - 与美国与欧洲结构有关吗?

时间:2013-04-20 14:56:44

标签: php mysql date phpmyadmin

我有一些PHP代码在mySQL数据库上进行查询 - 如果我在phpmyadmin中执行查询它可以工作 - 但如果我在php中执行相同的搜索它不起作用

从phpmyadmin复制工作正常返回所有行

SELECT * FROM contract WHERE DATE(`fdos`) >= '2013-05-01' And DATE(`fdos`) <= '2013-05-09'

我的PHP代码无法工作(既不查询)也只返回30行中的3行。日期的格式不能改变,这就是我如何_GET数据。

$startdate = "2013-05-01";
$enddate = "2013-06-01";
function getAllContracts($startdate, $enddate)
{
$sd = date('Y-m-d', strtotime(str_replace("-","/",$startdate)));
$ed = date('Y-m-d', strtotime(str_replace("-","/",$enddate)));
$query1="SELECT * FROM contract WHERE DATE(`fdos`) >= '$sd' And  DATE(`fdos`) <= '$ed'";
$query2="SELECT * FROM contract WHERE DATE(`fdos`) >= Date('$startdate') And     DATE(`fdos`) <= Date('$enddate')";
}

要添加的其他内容是mysql我将日期存储为此格式为“2013-05-01”的文本,这就是为什么我必须调用DATE

2 个答案:

答案 0 :(得分:1)

你必须“围绕这个变量

$startdate = "2013-05-01";
$enddate = "2013-06-01";

答案 1 :(得分:0)

我认为问题出在查询本身,尝试使用BETWEEN作为comaprison

$query1="SELECT * FROM contract WHERE DATE(`fdos`) BETWEEN '$sd' AND '$ed'";