我已經更改了字段的日期格式,但是它沒有在新的日期模式中找到記錄。如何在MySQL中通過date_format字段進行搜索
SELECT id, DATE_FORMAT(sale_date, "%d-%m-%Y") AS sale_date
FROM sales
WHERE sale_date = '31-12-2012';
我已經更改了字段的日期格式,但是它沒有在新的日期模式中找到記錄。如何在MySQL中通過date_format字段進行搜索
SELECT id, DATE_FORMAT(sale_date, "%d-%m-%Y") AS sale_date
FROM sales
WHERE sale_date = '31-12-2012';
試試這個:
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';
假設你正在使用timestamp
或date
格式爲您列sale_date
,您必須指定的日期一樣YYYY-MM-DD:
WHERE sale_date = '2012-12-31';
事實上,這是行得通的,但是在sale_date列的where子句中應用DATE_FORMAT函數會導致它忽略列sale_date上的任何索引...我將假設他們查找的是sale_date,得到它索引。 – Ray
檢查我的其他查詢它將應用索引銷售日期列 –
是的,第二個查詢不會破壞索引。 – Ray