我正在尝试查询MYSQL数据库以返回今天日期的所有记录 -
SELECT *
FROM credit_application
created_on = '15-OCT-15';
但由于查询中的“OCT”部分,它失败了。我该如何解决这个问题?
答案 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
。如果它实际上是DATETIME
或TIMESTAMP
,则您需要进行范围查询:
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查询。