php - 如何使用 DATEDIFF 选择行?

标签 php mysql sql

我正在使用this calendar使用 mySQL 数据库显示客户议程的插件。 日历使用 start 向我的脚本发送请求和end UNIX 时间戳如下:

/getevents.php?start=1262332800&end=1265011200&_=1263178646
//That last piece of data is to prevent caching.. apparently

在我的脚本中,我将 UNIX 时间戳转换为 mySQL datetime像这样的对象:

$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 月时):

2012-08-26 04:00:00.....2012-10-07 04:00:00

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

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

但是使用以下 SQL 语句,我没有得到结果。我尝试反转 ><只是为了它,但仍然一无所获。我根本没有收到任何错误,只是没有结果。

$sql = "SELECT * FROM all_events WHERE DATEDIFF('$start', 'start') > 0";
$result = mysql_query($sql, $link) or die(mysql_error());
echo "Rows:".mysql_num_rows($result);

如您所见,现在我只是检查start事件的数量大于start日历的日期范围。即 8 月 26 日是 start九月。

我没有发现任何问题...请帮忙!我快把头发扯下来了!

最佳答案

不要使用单引号作为列名,而是使用反引号。试试这个

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

关于php - 如何使用 DATEDIFF 选择行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12291746/

相关文章:

php - 包含数据库连接错误的 php 文件

php - MySql 和在链接表中插入数据,如何?

sql - 使用 PetaPoco 执行参数化存储过程

mysql - SQL 按日期集分组

mysql - 使用 where、AND、OR 的 SQL Select 语句无法正常工作

php - 如何在美德商城中获取所有类别和子类别的名称

php - 学说 2 分页

java - RemoteSolrException : ERROR: [doc=2] unknown field 'firstName'

mysql - Yii CGridView 基于关系 HAS_MANY 数据建表

php - 常量和 mysql,最佳实践