2016-02-18 19 views
0

我需要在兩個日期(例如1年)之間按名稱顯示房子。我嘗試了以下請求,但它不起作用。查詢兩個日期和另一個數據

SELECT * 
FROM DATA1 
WHERE facility='house' 
    AND datee BETWEEN '2014-02-01' AND '2015-02-31' 
GROUP BY name 
ORDER BY datee ASC; 
+0

您是否收到任何錯誤消息?如果是這樣,請在這裏發帖 –

+0

LOL!我已經搞定了。 這是溶液 SELECT * FROM DATA1 在工廠= '房子' AND(BETWEEN日期E( '2014年2月1日')和( '2015年2月31日')) ORDER BY設施datee ASC – EzzeOnursito

+1

沒有像2015-02-31這樣的日期。二月只有28天(閏年29)。 – Barmar

回答

0

這是解決方案!

SELECT * 
FROM DATA1 
WHERE facility= 'house' 
AND datee BETWEEN '2014-02-01' AND '2015-02-28' 
ORDER BY facility,datee ASC 
+1

你應該解釋你所修正的問題,而不僅僅是顯示代碼,以便讀者能夠理解問題是什麼以及如何解決問題。 – Barmar

-1

試試這個,它可能會幫助你。

SELECT * FROM DATA1 
WHERE facility= 'house' 
AND (dateE BETWEEN YEAR(2014-02-01) AND YEAR(2015-02-31)) 
GROUP BY name ORDER BY datee ASC; 
+0

日期需要用引號括起來。 – Barmar

+0

是的,它唯一的建議不是完美的答案。開發人員應該知道他在做什麼的語法。 – PHPExpert

+0

如果他知道語法,他不需要發佈這個問題! – Barmar

0

嗨,你可以用這些

SELECT * FROM DATA WHERE facility= 'house' 
AND(From_date >= '2013-01-03' AND To_date <= '2013-01-09') 
GROUP BY name 
ORDER BY datee ASC; 
+0

嗨,你可以去這些SELECT * FROM DATA WHERE facility ='house'AND(From_date > ='2013-01-03 AND To_date <='2013-01-09')GROUP BY名稱ORDER BY datee ASC; –

+0

你爲什麼要擺脫「BETWEEN」?它比用AND來結合兩個條件更具可讀性。 – Barmar

0

這走的是解決方案可以對你有所幫助。

SELECT * 
FROM DATA1 
WHERE facility= 'house' 
    AND (cast(datee as date)) BETWEEN (cast('2014-02-01' as date) AND cast('2015-02-28' as date)) 
ORDER BY name, datee ASC; 
+0

鑄造對結果 – Strawberry

+0

沒有影響,但上面的查詢提供了我認爲正確的結果。 –

+0

也許,但它比簡單地刪除演員慢 - 根據OP的自己的答案 – Strawberry