暂无图片
MySQL 如何按照时间点查询数据?
我来答
分享
暂无图片 匿名用户
MySQL 如何按照时间点查询数据?

比如我要查询10点整的数据,如果是0点整在数据库里面没有记录,就获取离十点整最近的一条数据作为10点的数据。

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
吾亦可往

SELECT * FROM your_table WHERE your_time_column >= DATE_ADD('00:00:00', INTERVAL (10 - HOUR(your_time_column)) HOUR) AND your_time_column < DATE_ADD('00:00:00', INTERVAL (10 + HOUR(your_time_column)) HOUR);

暂无图片 评论
暂无图片 有用 4
打赏 0
霸王龙的日常

假设你有一个名为your_table的表,并且其中有一个时间字段为timestamp_column;

先尝试查询准确时间点的数据,如果没有找到,则查询离10点最近的一条数据。两个语句进行union即可

SELECT * FROM your_table
WHERE DATE_FORMAT(timestamp_column, '%H:%i:%s') = '10:00:00'
UNION
SELECT * FROM your_table
WHERE timestamp_column <= '2023-08-02 10:00:00'
ORDER BY timestamp_column DESC
LIMIT 1;
复制

这样,如果数据库中有10点整的数据,就会返回该数据;否则,将返回离10点整最近的一条数据。

请注意,上述方法假设你的时间字段为MySQL的DATETIME类型。如果是其他类型,你可能需要做一些相应的调整。另外,为了确保查询的准确性和性能,请确保数据库中的时间字段有正确的索引。

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交