2012-11-17 83 views
1

我使用下面的MySQL查詢來選擇條目時DATE_START是在接下來的14天,它工作正常,在大多數情況下,但它不包括那些「今天」條目選擇日期範圍withinthe未來14天內

SELECT * , DATE_FORMAT(date_start, ' %d.%m.%Y') AS date_formatted 
FROM calendar_event 
WHERE Date_start 
BETWEEN NOW() 
AND DATE_ADD(NOW() , INTERVAL 14 
DAY) 
AND amountpaid + amountpaid2 + amountpaid3 < amount 
AND amountpaid > 0 

任何想法如何,我可以讓它也顯示,被安排與今天的條目日期

千恩萬謝

+0

NOW()是建立在當前時間,所以如2012-11-17 19:58:00,但是你想要的是2012-11-17 00:00:00,所以使用日期(now()) – MatthiasLaug

回答

3
SELECT * , DATE_FORMAT(date_start, ' %d.%m.%Y') AS date_formatted 
FROM calendar_event 
WHERE Date_start 
BETWEEN CURDATE() 
AND DATE_ADD(CURDATE() , INTERVAL 14 DAY) 
AND amountpaid + amountpaid2 + amountpaid3 < amount 
AND amountpaid > 0 

在一天中的任何時間,除了上午12:00,由NOW()返回的值將大於12點的上午那天。

+0

非常感謝 –

0

你可以使用DATE_FORMAT所以你只能按日期而不是小時和分鐘相比,這是這裏的錯誤情況是因爲SE將它與目前的時間是超前一些時間從00:00

+0

假設你的DB行日期類似於Ymd 00:00:00 – banzsh

1

你試試這個

SELECT * , DATE_FORMAT(date_start, ' %d.%m.%Y') AS date_formatted FROM calendar_event WHERE Date_start BETWEEN GETDATE() AND DATE_ADD(GETDATE()+14) AND amountpaid + amountpaid2 + amountpaid3 < amount AND amountpaid > 0 
+0

感謝Vikas,現在就解決了 –