Sql Query不返回所需的值

时间:2016-03-23 12:20:46

标签: mysql sql

我正在执行以下查询

SELECT * FROM `temp` WHERE date_of_approval > "16-12-2015"

我希望得到日​​期大于“16-12-2015”的所有记录,但它显示的所有行都大于“16”且不大于“16-12-2015”

2 个答案:

答案 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语句中对字符串和日期常量使用单引号。这是字符串的标准分隔符。