2010-04-10 182 views
-1

嘿,我需要一點點幫助,弄清楚如何爲我的選擇查詢獲得一段時間。這裏是我想出來的代碼:mySQL日期範圍問題

select id, idNumber, theDateStart, theDateEnd 
from clients 
WHERE idNumber = '010203' 
AND theDateStart >= '2010-04-09' 
AND theDateEnd <= '2010-04-09'; 

這是在表中的數據是這樣的:

TheDateStart = 2010-04-09 
TheDateEnd = 2010-04-11 

當測試上面的代碼,它不填充任何內容。如果我把TheEndDate取出,它會填充,但是還有一些其他表格數據以及它不應該做的(它應該只有一條記錄)。

我知道問題在兩個日期之內。我不知道如何去獲取DateStart和DayEnd的日期範圍,因爲如果有人在2010年4月10日嘗試它,它仍然需要知道它在2010年4月9日 - 2010年 - 04-11。但現在,它不...

任何幫助將是偉大的! :O)

大衛

+0

什麼樣的 '%010203%' 的發生的ID號,是你的日期列字符串或約會!? – lexu 2010-04-10 06:12:51

回答

0

確定。我得到它:O)(YAY去我)

select id, idNumber, theDateStart, theDateEnd 
from clients 
WHERE idNumber = 'NB010203' 
AND '2010-04-09' BETWEEN theDateStart AND theDateEnd; 

大衛

0

嘗試以下

select id, idNumber, theDateStart, theDateEnd 
from clients 
WHERE idNumber = '010203' 
AND date_format(theDateStart, '%Y-%m-%d')>= '2010-04-09' AND 
    date_format(theDateEnd, '%Y-%m-%d')<= '2010-04-09' 
+0

嘗試過,但執行後仍然沒有顯示數據。 – StealthRT 2010-04-10 03:00:48

+0

Just nit-picking:不要將date-column轉換爲字符串,而是將字符串轉換爲日期。只有一個字符串,那裏有(很多)不同的列。一次轉換而不是多次=>性能提升。此外,如果您轉換日期列,則不能使用潛在索引。 – lexu 2010-04-10 06:01:08

+0

啊,注意:o)謝謝,Lexu – StealthRT 2010-04-10 07:40:32