0

我的要求是根据数据库中的列之一从当前时间仅剩 5 分钟的 mysql 数据库中提取记录。该列具有用户插入的日期时间。

     date_default_timezone_set("UTC");
  $utc_time = date("Y-m-d H:i:s", time());
 echo "UTC Time: " . $utc_time . "<br>";


$result = mysql_query("select reminder_text, reminder_subject, reminder_date_time_utc  $table_name where (TIME_TO_SEC (TIMEDIFF(reminder_date_time_utc , '$utc_time')) < 300) AND (TIMEDIFF(reminder_date_time_utc , '$utc_time')) > 0) ") or die(mysql_error());

这里TIMEDIFF 函数中的reminder_date_time 是获取DATETIME 的列名。使用这个查询我没有得到结果,但如果我放置日期而不是提醒日期时间它会给我正确的输出。例如,如果我说 TIMEDIFF('2013-07-12 11:05:00' , '$utc_time') 它会给我正确的输出。而这个相同的值: 2013-07-12 11:05:00 实际上存在于该列的其中一个行中

任何我出错的建议...... TIMEDIFF 函数是否不接受列名作为参数之一。

4

2 回答 2

0

或使用DATE_ADD()功能:

'SELECT * FROM ' . $tablename . ' WHERE reminder_date_time_utc > DATE_ADD(NOW(), INTERVAL -'5' SECOND));

于 2013-07-12T07:51:09.597 回答
0

您是否忘记了 sql 中的 FROM?你为什么不尝试这样做:

$utc_time = date("Y-m-d H:i:s", time() - 30000);

并将查询更改为

'SELECT * FROM ' . $tablename . ' WHERE reminder_date_time_utc > "' . $utc_time . '"';
于 2013-07-12T07:43:01.710 回答