使用格式为10-OCT-15的日期查询MYSQL

时间:2015-10-15 13:39:34

标签: mysql date datetime

我正在尝试查询MYSQL数据库以返回今天日期的所有记录 -

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

但由于查询中的“OCT”部分,它失败了。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

使用mysql DATE_FORMAT 功能

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

答案 1 :(得分:0)

使用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查询。