2010-04-15 181 views
4

我想檢查日期是否在開始日期和結束日期之間。開始日期到結束日期之間的查找時間

我添加了一個WHERE子句

where datepaid between '2010-04-01' AND '2010-04-15' 

但問題是,它排除了 '2010-04-15'。

它應該包括結束日期我該怎麼做?

請幫我在這

問候,

潘卡

回答

14

指定時間部分明確:

WHERE datepaid BETWEEN '2010-04-01 00:00:00' AND '2010-04-15 23:59:59' 
+0

它包括像2010-04-15 23:59:59.56? – 2010-04-15 10:25:00

+1

@Jens:據我所知,MySQL不存儲小數秒。如果它確實支持它們,那麼我會將該子句改爲「BETWEEN'2010-04-01 00:00:00.000'和'2010-04-15 23:59:59.999''。 – LukeH 2010-04-15 10:47:12

5

也許你的日期包括盤中倍。試試這個:

where '2010-04-01' <= datepaid AND datepaid < '2010-04-16' 
+1

喜用於回覆這意味着我有至1天的時間間隔添加到感謝結束日期以獲取正確的記錄 – 2010-04-15 10:27:46

0

嘗試

where datepaid between '2010-04-01' AND '2010-04-15 23:59:59' 
+2

我愛那麼多人保持他們的獨角獸頭像! – 2010-04-15 10:17:08

-1

添加這個條款:

OR datepaid = '2010-04-15' 
+0

這不會做任何事情。 「BETWEEN」條款已經涵蓋了這種情況。 – 2010-04-15 10:17:23

1
WHERE datepaid >= '2010-04-01' 
     AND datepaid < '2010-04-15' + INTERVAL 1 DAY 
0

這可能是由於有時間日期:

select 
    '2010-04-15' between '2010-04-01' AND '2010-04-15', -- 1 
    '2010-04-15 12:00:00' between '2010-04-01' AND '2010-04-15', -- 0 
    '2010-04-15 12:00:00' between '2010-04-01 00:00:00' AND '2010-04-15 23:59:59' -- 1 

要麼添加時間範圍分隔符或比較之前截斷值:

select 
    '2010-04-15 12:00:00' between '2010-04-01 00:00:00' AND '2010-04-15 23:59:59' -- 1 
    cast('2010-04-15 12:00:00' as date) between '2010-04-01' AND '2010-04-15' -- 1 

我沒有檢查,但我想表現沒有更好的鑄件。

0

其中CONVERT(VARCHAR(10),datepaid,23) '2010-04-01' 之間AND '2010-04-15'

相關問題