2013-07-12 72 views
0

我的要求是從mysql數據庫中提取記錄,這些記錄僅與當前時間相距5分鐘,與數據庫中的某一列相同。該列具有用戶插入的日期時間。SQL中的TIMEDIFF函數可能不接受列名作爲參數之一

 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實際上存在於本列的其中一行中reminder_date_time_utc

任何意見,我要去哪裏錯... TIMEDIFF函數不接受列名作爲一個的參數。

+0

大家好,我用盡全力它似乎仍不能正常工作的解決方案 – user2575238

回答

0

你在sql中忘了FROM嗎? 你爲什麼不嘗試做像以下:

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

和查詢更改爲

'SELECT * FROM ' . $tablename . ' WHERE reminder_date_time_utc > "' . $utc_time . '"'; 
0

或使用DATE_ADD()功能:

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

相關問題