2012-12-31 38 views

回答

3

試試這個:

SELECT id, DATE_FORMAT(sale_date, "%d-%m-%Y") AS sale_date 
FROM sales 
WHERE sale_date = STR_TO_DATE('31-12-2012' , "%d-%m-%Y") ; 

SELECT id, DATE_FORMAT(sale_date, "%d-%m-%Y") AS sale_date 
FROM sales 
WHERE DATE_FORMAT(sale_date, "%d-%m-%Y") = '31-12-2012'; 
+1

事實上,這是行得通的,但是在sale_date列的where子句中應用DATE_FORMAT函數會導致它忽略列sale_date上的任何索引...我將假設他們查找的是sale_date,得到它索引。 – Ray

+0

檢查我的其他查詢它將應用索引銷售日期列 –

+0

是的,第二個查詢不會破壞索引。 – Ray

1

假設你正在使用timestampdate格式爲您列sale_date,您必須指定的日期一樣YYYY-MM-DD:

WHERE sale_date = '2012-12-31'; 
+1

@TPSstar:Mysql * always *使用[ISO8601格式](http://en.wikipedia.org/wiki/ISO_8601)在表達式中寫入日期。 – wallyk

+0

@Ray是的,我知道這一點,但我想搜索我定義的格式,這是「%d-%m-%Y」 – TPSstar

+0

@TPSstar對不起,你的問題並沒有表明你無法改變提供的字符串。在上面的答案中,薩哈爾斯的第二個問題應該是訣竅。 – Ray

相關問題