2017-03-04 89 views
1

我有這個疑問:查詢沒有返回預期的結果

SELECT * FROM Sales 
WHERE (Date BETWEEN '2017-01-01' AND '2017-02-28') 
    AND (ID="Search" OR Product="Search"); 

應該返回要麼ID OS產品等於搜索那些2日期間僅銷售,但它的返回是這些日期即使之間的所有結果沒有標識或產品=搜索,我不明白爲什麼

編輯

樣本數據

ID  Date   Product 
1  2017-01-11 Product A 
2  2017-02-01 Product C 
3  2017-02-05 Product B 
4  2017-03-01 Product A 

如果我的查詢是

SELECT * FROM Sales 
WHERE (Date BETWEEN '2017-01-01' AND '2017-02-28') 
AND (ID="Product C" OR Product="Product C"); 

我期待

ID  Date   Product 
2  2017-02-01 Product C 

但它返回提前

+0

請出示一些樣本數據,否則我們不會是能夠理解你的問題。 – ekad

+3

您的查詢應該返回您所期望的。你確定你已經正確地轉錄了查詢嗎? –

+2

您確定您將date列保存爲datetime數據類型而不是字符串嗎? – Utsav

回答

1

ID  Date   Product 
1  2017-01-11 Product A 
2  2017-02-01 Product C 
3  2017-02-05 Product B 

由於這是沒有問題的。例如,

我的表

+----+------+---------------------+ | id | name | create_at | +----+------+---------------------+ | 1 | 1 | 2017-03-04 11:06:25 | | 2 | 2 | 2017-03-04 11:09:27 | | 3 | 4 | 2017-03-04 11:06:56 | +----+------+---------------------+

我的SQL

SELECT * FROM test WHERE (create_at BETWEEN '2017-03-04 11:06:00' AND '2017-03-04 11:10:00') AND (id="2" OR name="2");

我的結果

+----+------+---------------------+ | id | name | create_at | +----+------+---------------------+ | 2 | 2 | 2017-03-04 11:09:27 | +----+------+---------------------+