2013-02-28 72 views
0

我有一個約會表,我想向用戶顯示他所做的所有約會都高於當前日期,因此他可以取消它們...我有這個查詢...選擇高於NOW的值

$result = mysql_query("SELECT id,date,start,end FROM jos_jxtc_appbook_appointments WHERE userident='$idusera' AND CONCAT(date,' ',start)>NOW()"); 
while($row = mysql_fetch_assoc($result)) 
{ 

echo '<div class="record" id="record-',$row['id'],'"> 
    <a href="?delete=',$row['id'],'" class="delete">Delete</a> 
    <strong>',$row['date'], $row['start'], $row['end'],'</strong> 
    </div>'; 

} 

這仍然顯示日期低於當前...它可能是一個時區錯誤或類似的東西?

這是我的表...

date  duration start  end 
2013-02-28 01:00:00 12:00:00 13:00:00 
2013-02-28 01:00:00 03:00:00 04:00:00 
2013-02-27 01:00:00 21:00:00 22:00:00 
2013-02-27 01:00:00 20:00:00 21:00:00 
2013-02-28 01:00:00 20:00:00 21:00:00 
2013-02-28 01:00:00 01:00:00 02:00:00 
2013-02-28 01:00:00 09:00:00 10:00:00 
2013-02-28 01:00:00 02:00:00 03:00:00 
2013-03-01 01:00:00 00:00:00 01:00:00 
2013-02-28 01:00:00 21:00:00 22:00:00 
2013-02-28 01:00:00 22:00:00 23:00:00 
2013-03-01 01:00:00 02:00:00 03:00:00 

和我得到這個從我的回聲......

Delete 2013-02-28 12:00:00 13:00:00 
Delete 2013-02-28 20:00:00 21:00:00 
Delete 2013-03-01 00:00:00 01:00:00 
Delete 2013-02-28 21:00:00 22:00:00 
Delete 2013-02-28 22:00:00 23:00:00 
Delete 2013-03-01 02:00:00 03:00:00 

因此,如果當前的時間是2013年2月28日15:25: 00,因爲它現在,它不應該顯示日期較低 - 2013-02-28 12:00:00 13:00:00。

+1

哪些列:'date'和'start'? – 2013-02-28 13:41:54

+0

請回複查詢和表格說明 – Vineet1982 2013-02-28 13:43:30

+2

您可以在mysqlfiddle上設置一個虛擬表嗎? 而我**強**建議您使用mysqli而不是mysql。 – Tschallacka 2013-02-28 13:44:49

回答

0

我認爲dateDate型和兩者startend是有點像Char類型列。 對於您的startend列,您應該使用DateTime類型,因此您不需要執行任何concat。 現在你可以做start > NOW()

+0

我很抱歉我沒有提到它,但日期是類型日期和開始和結束是時間類型...所以當我連接日期和開始我得到 - Ymd H:我:S作爲NOW()函數的相同格式,但它仍然顯示一些日期較低,這可能是因爲時區不同嗎? – Shile 2013-02-28 14:33:04

+0

你正在比較一個字符串與日期時間,所以這是蘋果和橘子。你應該使用'STR_TO_DATE()'作爲上面評論中提到的,或者使用我的建議,這會讓你的生活更輕鬆。 – 2013-02-28 14:38:32

0

您需要STR_TO_DATE()函數將字符串轉換爲有效的日期值。

$result = mysql_query("SELECT id,date,start,end FROM jos_jxtc_appbook_appointments WHERE userident='$idusera' AND STR_TO_DATE(CONCAT(date,' ',start))>NOW()"); 
+0

我試過你的代碼,但我得到了...警告:mysql_fetch_assoc():提供的參數不是有效的MySQL結果資源... – Shile 2013-02-28 14:42:21