2015-10-15 51 views
2

我想查询一个MySQL数据库与今天的日期返回所有记录的格式的日期 -查询MYSQL在10-OCT-15

SELECT * 
FROM credit_application 
created_on = '15-OCT-15'; 

但它的失败是因为“华侨城”部分在查询内。我该如何解决这个问题?

+0

只需使用DATE_FORMAT –

+0

使用DATE_FORMAT(NOW(),'%​​d-%b-%y')转换日期 –

回答

1

使用MySQL STR_TO_DATE功能

SELECT * 
FROM credit_application 
created_on = STR_TO_DATE('15-OCT-15', '%d-%b-%y'); 

当然,这里假设你的created_on场只是一个DATE。如果它实际上是一个DATETIMETIMESTAMP,那么你就需要做一个范围查询,而不是:

SELECT * 
FROM credit_application 
created_on >= STR_TO_DATE('15-OCT-15', '%d-%b-%y') AND 
created_on < DATE_ADD(STR_TO_DATE('15-OCT-15', '%d-%b-%y'), INTERVAL 1 DAY); 

使用DATE_FORMAT需要的功能的其他建议表中所应用到的每一行,防止使用您可能拥有的任何索引。这将是一个non-sargable查询。

+0

谢谢你的回答和解释。 – Ben

1

使用MySQL DATE_FORMAT功能

SELECT * 
FROM credit_application 
DATE_FORMAT(created_on,'%d-%b-%y') = '15-OCT-15'; 
+0

谢谢您的回答! – Ben