我正在执行以下查询
SELECT * FROM `temp` WHERE date_of_approval > "16-12-2015"
我希望得到日期大于“16-12-2015”的所有记录,但它显示的所有行都大于“16”且不大于“16-12-2015”
答案 0 :(得分:1)
在您的表格中,您将日期存储为dd-mm-yyyy
格式,因此必须先将其转换为标准日期格式,然后再将其与日期进行比较。
SELECT * FROM `temp`
WHERE STR_TO_DATE(date_of_approval,'%d-%m-%Y') > STR_TO_DATE('16-12-2015','%d-%m-%Y');
OR
SELECT * FROM `temp`
WHERE STR_TO_DATE(date_of_approval,'%d-%m-%Y') > '2015-12-16';
答案 1 :(得分:1)
我的推荐。始终使用ISO标准日期格式。大多数数据库都接受这些:
SELECT t.*
FROM `temp` t
WHERE date_of_approval > '2015-02-16'
此外,在SQL语句中对字符串和日期常量使用单引号。这是字符串的标准分隔符。