mysql - 获取最近 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 条记录。它看起来像日期格式的问题。
解决方案
似乎您的日期存储为 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
推荐阅读
- node.js - 节点快递请求队列长度
- vaadin - 为什么当我使用 vaadin 选择数据在删除后仍然可见但如果我使用简单选择,数据从 UI 中正确删除
- sonarqube - 在扫描期间跳过 SonarQube 传感器
- angular - 在 socket.io-client 中调用 IO 时出错,角度 8
- python - 一行键盘出错,另一行不出错
- node.js - 使用 node-pg 和 Express 创建交易?
- python - 使用 python 创建 hdf5 文件后,我遇到了 ValueError
- linux - 变量超出条件的 Bash
- sql - 修改报表范围sql查询只返回当年
- google-apps-script - Google 表格:使用命名范围查找所有单元格