假设你有一个名为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类型。如果是其他类型,你可能需要做一些相应的调整。另外,为了确保查询的准确性和性能,请确保数据库中的时间字段有正确的索引。