Php 如何使用DATEDIFF选择行?
我正在使用插件来显示我的客户端的议程,使用mySQL数据库。 日历向我的脚本发送一个带有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
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时间戳转换为mySQLdatetime
对象,如下所示:
/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我讨厌事情这么简单!非常感谢。