我有一个数据库,它存储了创建记录的日期。问题是,当我在1年内尝试SELECT
所有记录时,我没有返回任何行。
我创建了一个SQLFiddle来说明我拥有的内容以及我正在尝试做的事情:http://sqlfiddle.com/#!9/33a32b/8
SELECT aux.description, DATE_FORMAT(aux.date_creation, '%d/%m/%Y às %H:%i') AS `formatted_date`
FROM aux
WHERE aux.date_creation BETWEEN 'CURDATE() - INTERVAL 1 YEAR' AND 'CURDATE()'
ORDER BY `formatted_date` DESC;
答案 0 :(得分:2)
这是您的查询:
SELECT aux.description, DATE_FORMAT(aux.date_creation, '%d/%m/%Y às %H:%i') AS `formatted_date`
FROM aux
WHERE aux.date_creation BETWEEN 'CURDATE() - INTERVAL 1 YEAR' AND 'CURDATE()'
ORDER BY `formatted_date` DESC;
单引号不正确。你有一个字符串常量,而不是日期表达式。据推测,date_creation
已成为过去,所以您只需要:
SELECT aux.description,
DATE_FORMAT(aux.date_creation, '%d/%m/%Y às %H:%i') AS formatted_date
FROM aux
WHERE aux.date_creation >= CURDATE() - INTERVAL 1 YEAR
ORDER BY aux.date_creation DESC;
请注意,我也更改了ORDER BY
。通常情况下,一个人希望1月2日跟随1月1日,而不是2月1日。