首页 > 解决方案 > 获取最近 2 天的记录

问题描述

我正在尝试创建一个查询以获取过去两天的记录。在我的表中有一个名为dates的字段。值如下:

05-08-2018 08:05:22
05-08-2018 10:15:42

dd-mm-yyyy hh:ii:ss

我已经创建了查询。

SELECT id,title,description, dates
FROM post_feed where `dates` BETWEEN CURDATE() - INTERVAL 1 DAY AND CURDATE()
ORDER BY dates DESC LIMIT 100

当我运行查询时,它返回 0 条记录。它看起来像日期格式的问题。

标签: mysqlsqldatedatetime

解决方案


似乎您的日期存储为 varchar。STR_TO_DATE在执行任何比较之前,您必须将它们转换为日期(例如使用)。

例如,假设今天是 Aug-05,并且您想要 Aug-04 和 05(含)的结果:

SELECT id, title, description, dates
FROM post_feed
WHERE STR_TO_DATE(dates, '%d-%m-%Y') BETWEEN CURRENT_DATE - INTERVAL 1 DAY AND CURRENT_DATE
ORDER BY dates DESC
LIMIT 100

SQL小提琴


推荐阅读