2012-07-25 23 views
0

通過表單的用戶選擇日期+時間,然後當他提交後,該代碼運行此查詢編輯現有的查詢來搜索如果時間開始日期和結束日期之間

ABS(TIMESTAMPDIFF(HOUR , `start`, :time)) < 2 

是查找所有start與選定日期之間的差值小於2的行。

但是,現在我添加了一個新字段end,其中包含事件的結束日期和時間。

我的問題是,我應該如何編輯我現有的查詢以返回所選日期在startend之間的行?

這是選擇格式,開始結束日期+時間:2012-07-25 04:30

回答

1

使用BETWEEN

WHERE selected_date BETWEEN start AND end 

引述手冊有關使用BETWEEN使用日期:

For best將BETWEEN與日期或時間值一起使用時的結果,請使用CAST()將值顯式轉換爲所需的數據類型。示例:如果將DATETIME與兩個DATE值進行比較,請將DATE值轉換爲DATETIME值。如果在比較DATE時使用字符串常量(如「2001-1-1」),則將該字符串強制轉換爲DATE。

+0

謝謝你。在我的情況下,所有的輸入都像2012-07-25 04:30。那麼我需要使用CAST()嗎? – EnexoOnoma 2012-07-25 01:52:48

+0

如果它們的格式相同,而且它們是,則不需要使用它。 – 2012-07-25 01:56:49

相關問題