2010-04-28 270 views
0

我試圖查詢某種從 - 到日期。 例如20-01-2010至20-02-2010。這應該包括提到的日期。查詢日期範圍

我試過以下查詢,但沒有任何作品。

select * 
    from [tableName] 
where date >= '20-01-2010' 
    AND date <= '20-02-2010' 

但日期等於20-02-2010的日期未顯示。我不知道爲什麼。


select * 
    from [tableName] 
where date between '20-01-2010' 
      AND '20-02-2010' 

所提到的日期不包括在結果中。我希望它被包含在結果中。

請大家幫忙。

在此先感謝! :)

+2

您正在使用什麼數據庫? – Uri 2010-04-28 02:18:28

+0

「日期」字段的數據類型是什麼? – lexu 2010-04-28 02:24:16

回答

0

感謝所有的答覆。 我想出了問題。

以下查詢不起作用的原因是因爲日期字段的值由於日期時間而具有hh:mm:ss。如果您與普通日期進行比較,則時間部分將爲0.這就是爲什麼具有日期「20-02-2010」的數據不會顯示在我的結果集中,因爲數據具有hh:mm:ss不等於'00 :00:00.000' 。

SELECT * FROM[tableName] WHERE date >= '20-01-2010' AND date <= '20-02-2010' 

下面的查詢現在工作。只是增加了一個時間參數

SELECT* FROM [tableName] WHERE date >= '20-01-2010' AND date <= '20-02-2010 23:59:59.000' 

歡呼

1

請確保您的表中沒有日期時間值,其中時間值不是0。在這種情況下,與您提供的上限日期相比,沒有任何差異。

0
SELECT date 
FROM `test_table` 
WHERE date >= '2010-04-01' 
AND date <= '2010-04-30'; 

其實在mysql中工作。請記住,DATE type字段的標準結構是YYYY-MM-DD

+0

使用postgre sql和類型爲datetime的日期 – klambiguit 2010-04-30 02:48:00