我的要求是从 mysql 数据库中根据数据库中的列之一提取距当前时间仅剩 5 分钟的记录。该列是用户插入的日期时间。
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的列名。使用此查询我没有得到结果,但如果我放置日期而不是reminder_date_time,它会给我正确的输出。例如,如果我说 TIMEDIFF('2013-07-12 11:05:00' , '$utc_time') 它会给我正确的输出。并且这个相同的值:2013-07-12 11:05:00 实际上存在于该列的某一行中 Remember_date_time_utc
任何我出错的地方的建议...TIMEDIFF 函数是否不接受列名作为参数之一。
最佳答案
你忘记了sql中的FROM吗? 你为什么不尝试像下面这样做:
$utc_time = date("Y-m-d H:i:s", time() - 30000);
并将查询更改为
'SELECT * FROM ' . $tablename . ' WHERE reminder_date_time_utc > "' . $utc_time . '"';
关于mysql - 也许sql中的TIMEDIFF函数不接受列名作为参数之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17609871/