2016-04-13 42 views
1

兩個查詢之間的區別標有^MySql:日期(字符串)引號如何影響結果?

SELECT COUNT(*) 
FROM customers_reports AS cr 
JOIN customers_docs on customers_docs.customerId=cr.customerId 
WHERE cr.firstDepositDate >= 2015-12-01 AND customers_docs.docs = "None"; 

該查詢返回2分的結果。

SELECT COUNT(*) 
FROM customers_reports AS cr 
JOIN customers_docs on customers_docs.customerId=cr.customerId 
WHERE cr.firstDepositDate >='2015-12-01' AND customers_docs.docs = "None"; 
          ^  ^                                  

雖然此查詢返回30,000個結果。

有人可以解釋爲什麼嗎?

+1

是什麼'firstDepositDate'的數據類型? –

+0

MySQL是否對字符串文字使用雙引號? (根據ANSI SQL,「None」是一列。) – jarlh

回答

1

沒有單引號的日期值變爲算術表達式和2015年12月1日是2002年這顯然會影響結果

1

因爲當你不引用日期時,MySQL認爲它是一個整數。

2015-12-01評估爲2002

相關問題