2016-01-20 99 views
-1

我需要also.So我使用這樣大於號和小於在我的SQL

"SELECT * FROM events WHERE start_date <= '2016-01-21%' AND start_date >= '2016-01-19%'" 

查詢到的數據獲取從2016年1月19日至2016年1月21日,包括日期,但我只得到2016-01-19,2016-01-20數據,而不是2016-01-21。如果在查詢中有任何錯誤,請分享答案。

+0

使用'between'關鍵字爲MySQL –

回答

0

首先請確保數據庫提交的 「起始日期」類型是日期時間我們也需要格式化日期時間迄今爲止

the tr y指向這個

SELECT * FROM events WHERE (DATE_FORMAT(start_date, '%Y-%m-%d') >= '2016-01-19' AND DATE_FORMAT(start_date, '%Y-%m-%d') <= '2016-01-21') 
+0

start_date的數據類型是datetime.I用過ur查詢但它返回與我的查詢相同。 –

+0

它只返回19和20數據,沒有顯示21數據 –

+0

請檢查現在的答案它會工作 –

2

使用between

SELECT * 
FROM events 
WHERE start_date BETWEEN date(2016-01-21 00:00:00) AND date(2016-01-19 23:59:59); 
1

嘗試使用betweendate功能

SELECT * FROM events WHERE start_date BETWEEN date(2016-01-21) AND date(2016-01-19) 
             ^  ^    ^
+0

@Abdulla',''中PHP' – Hassaan

+0

不需要在我的數據庫起始日期是在(2016年1月21日04:00:00)這種格式,所以我使用(2016-01-21%)。用這個怎麼寫查詢 –

+0

我試過了你的查詢不起作用 –

0

您可以使用之間,但使用它時,第一個日期必須小於第二牢記。對不起,第一個答案說的是相反的。

SELECT * 
    FROM events 
    WHERE start_date 
    BETWEEN date(2016-01-19 00:00:00) 
    AND date(2016-01-21 23:59:59)