2012-11-19 88 views
2

我試圖顯示當前時間之後有小時值(24小時格式)的行。 目前我使用:SQL時間比較

where time(hour)>time(now()) 

但是噹噹前時間是例如23:50和儲值是00:10這個比較失敗。

有什麼方法可以正確地進行copmare嗎?

這是查詢的一部分,以顯示巴士站上最近的巴士班次。

+0

通過這個定義,是不是邏輯總是正確的? –

+0

您的出發日期有所不同嗎?也就是說,你週末有不同的時間表嗎(這裏周圍的巴士有不同的週六/週日/假日時間表)?如果是這樣,你將不得不將它添加到給定的一天,否則你可能會得到一些非常奇怪的起飛時間... –

+0

是的,它總是如此(如果它在同一天),但離開的時間是按時間順序存儲的,所以我的查詢顯示匹配該比較的第一行。 它們有所不同,但分爲平日,星期六和星期日。平日不區分,所以它不會伎倆。 –

回答

0

那麼,你可以嘗試:

where time(hour)>time(now()) or time(hour) = 0 
+0

這樣可以在00:00將每次出發都添加到結果中。 –

+0

是的,因爲午夜在一天中的每一小時之後。 –

+0

事實上,這有效:)第一次,我剛剛複製/粘貼它,它不起作用,但在你回覆我分析它,並把時間(現在())或時間(小時)= 括號和它工作完美 謝謝:) –

0

我認爲這將是更好,如果你檢查它是否在未來的一個,然後檢查差。據我瞭解,這將更適合您的使用:

WHERE time > NOW() and TIMESTAMPDIFF(MINUTE,time,NOW()) < 60 
+0

好主意,這應該解決我的問題,但它不會返回任何記錄。我現在想弄明白爲什麼。 –