2015-04-17 10 views
0

我的選擇查詢是這樣的我在我的「processbackup」表中有記錄在這個日期範圍內,但它仍然沒有考慮日期範圍,因此我得到零行。日期範圍不是在mysql中的收貨人

SELECT 
    DATE_FORMAT(processDate,'%d-%m-%Y') AS processDate, 
    DATE_FORMAT(rDate,'%d-%m-%Y') AS rDate, 
    designMaster.dNo, 
    processbackup.desWet, 
    reciveWet, 
    item.itemNm, 
    processbackup.workerId 
    FROM processbackup 
    LEFT JOIN designMaster 
    ON designMaster.designMasterId = processbackup.designMasterId 
    LEFT JOIN item AS i 
    ON i.itemId = designMaster.itemId 
    LEFT JOIN item 
    ON item.itemId = designMaster.itemId 
WHERE processbackup.workerId = 1 
    AND (processDate BETWEEN '2015-04-04' AND '2015-04-14') 
+0

如果您刪除processDate的限制,您會得到任何結果嗎? –

+0

是@MarkLeiber –

+0

有兩個問題:processDate的數據類型是什麼?如果您將範圍更改爲2015-04-01至2015-04-30,您會得到任何結果嗎? –

回答

1

查詢沒有問題。

運行它:

SELECT processDate 
    FROM processbackup 
    LEFT JOIN designMaster 
    ON designMaster.designMasterId = processbackup.designMasterId 
    LEFT JOIN item AS i 
    ON i.itemId = designMaster.itemId 
    LEFT JOIN item 
    ON item.itemId = designMaster.itemId 
WHERE processbackup.workerId = 1 
    AND (processDate BETWEEN '2015-04-04' AND '2015-04-14') 

看的日期返回。如果他們不在2015-04-04和2015-04-14之間,您將無法獲得結果。

請注意,如果processDate是日期時間,則結果將不包括2015-04-14的值。您需要在WHERE子句中包含時間或將其更改爲2015-04-15。

+0

完成此查詢謝謝.. –

0

您應該將processDate放入HAVING子句中,而不是放在WHERE中,因爲您的值是從select中計算出來的。

+0

with HAVING give我相同的結果.. –

+0

請提供您的數據集和架構 – Andriy