Php 如何使用DATEDIFF选择行?

Php 如何使用DATEDIFF选择行?,php,mysql,sql,Php,Mysql,Sql,我正在使用插件来显示我的客户端的议程,使用mySQL数据库。 日历向我的脚本发送一个带有start和endUNIX时间戳的请求,如下所示: /getevents.php?start=1262332800&end=1265011200&_=1263178646 //That last piece of data is to prevent caching.. apparently $start = $_GET['start']; $end = $_GET['end']; $sta

我正在使用插件来显示我的客户端的议程,使用mySQL数据库。 日历向我的脚本发送一个带有
start
end
UNIX时间戳的请求,如下所示:

/getevents.php?start=1262332800&end=1265011200&_=1263178646
//That last piece of data is to prevent caching.. apparently
$start = $_GET['start'];
$end = $_GET['end'];
$start = gmdate("Y-m-d H:i:s", $start);
$end = gmdate("Y-m-d H:i:s", $end);
printf($start.".....".$end);
在我的脚本中,我将UNIX时间戳转换为mySQL
datetime
对象,如下所示:

/getevents.php?start=1262332800&end=1265011200&_=1263178646
//That last piece of data is to prevent caching.. apparently
$start = $_GET['start'];
$end = $_GET['end'];
$start = gmdate("Y-m-d H:i:s", $start);
$end = gmdate("Y-m-d H:i:s", $end);
printf($start.".....".$end);
这将正确打印如下内容(当我导航到2012年9月时):

现在,我想从数据库中选择介于这些日期之间的所有事件。我的数据库只有一行,
start
字段是今天的日期:

 id     start                   end
 10     2012-09-05 20:27:00     0000-00-00 00:00:00

但是对于下面的SQL语句,我没有得到结果。我已尝试将
反转为
不要对列名使用
单引号,而是使用
反勾号。试试这个

SELECT * FROM all_events WHERE DATEDIFF(`start`, '$start') > 0

我建议使用_UNIXTIME的
并准备以下语句:

$stmt = $mysqli->prepare("SELECT * FROM all_events WHERE DATEDIFF(FROM_UNIXTIME(?), start) > 0"); 
$stmt->bind_param($_GET['start']);

mysql\u
函数正在

“从DATEDIFF($end,$start)>0的表中选择*”即一些正数。我知道
mysql\u
函数已被弃用。。我试着使用
mysqli\uu
,这只会让我的代码非常慌乱。我将尝试至少让我的客户机运行,然后担心更新。不过,谢谢你提供的信息!facepalm我讨厌事情这么简单!非常感谢。