如何编写MariaDB中昨日23:00至今日22:59的SQL查询语句?
符合需求的MariaDB查询语句
直接用下面的SQL语句即可实现你的需求,我会逐部分解释逻辑:
SELECT * FROM `your_table_name` -- 替换成你实际的表名 WHERE -- 筛选昨日日期且时间≥23:00的数据 (date_col = DATE_SUB(CURDATE(), INTERVAL 1 DAY) AND time_col >= '23:00:00') OR -- 筛选今日日期且时间≤22:59:59的数据 (date_col = CURDATE() AND time_col <= '22:59:59');
关键部分说明:
CURDATE():MariaDB内置函数,自动获取当前系统的日期(格式为YYYY-MM-DD),不用手动写死日期。DATE_SUB(CURDATE(), INTERVAL 1 DAY):自动计算当前日期的前一天(也就是昨日),确保日期条件随系统日期自动更新。date_col和time_col:请替换成你表中实际存储日期、时间的列名。- 用
OR连接两组条件:只要满足「昨日+23点后」或者「今日+22点59分59秒前」其中一个条件,数据就会被筛选出来。 - 时间用
HH:MM:SS格式:避免因时间列的精度问题(比如带秒数)导致筛选不全。
内容的提问来源于stack exchange,提问作者Pulsy
相关产品推荐
相关产品推荐

