2013-04-20 22 views
0

我有我的數據庫表中的兩個字段start_time和和end_time例如東西大於或等於工作時:MySQL查詢中的兩個日期時間的範圍內得到物品與該範圍的開頭

start_time: 2013-04-20 13:07:00 
end_time: 2013-04-20 12:07:00 

我查詢當前包含

where `start_time` >= '2013-04-20 14:13:20' AND `end_time` <= '2013-04-20 18:13:20' 

這緣於方式查詢是start_time: 2013-04-20 13:07:00的結果不會拉,所以我尋求如何彌補這一想法。生成的拉時間已經將時間從當前時間設置回一小時,並將結束時間設置爲距當前時間4小時。

+0

在啓動前一個小時怎麼能結束? – Barmar 2013-04-20 18:07:36

+0

您是否使用時間戳或日期時間?他們以不同的方式處理時區,這可能是您問題的原因。 – 2013-04-20 18:09:11

+0

我使用的是日期時間,而時區的事情是一個完全不同的問題,我也在與這個一起處理。致力於將現有代碼轉換爲使用GMT,同時將所有日期時間記錄轉換爲gmt等價物,以便我可以使用基於人員位置的偏移量。由於目前DB中的大部分日期時間記錄都使用東部時區參考,而大部分用戶都處於太平洋時區。原來的計劃沒有指出什麼時候它編碼..去圖,總而言之,盡力解決這一切,我可以 – chris 2013-04-20 18:13:25

回答

-1

請勿在查詢中使用>=<= 請使用類似這樣的東西來修復它。 where (start_time > '2013-04-20 14:13:20' or start_time = '2013-04-20 14:13:20') AND (end_time < '2013-04-20 18:13:20' or end_time = '2013-04-20 18:13:20')

+0

爲什麼你不覺得'<='與時代? – Barmar 2013-04-20 18:08:27