如何用SQL筛选当日AM时段(05:00-12:00)和PM时段(13:00-23:00)的报表数据
按时段筛选报表记录解决方案
针对你的需求,以下是不同数据库环境下的SQL查询方案,用于筛选出对应时段的记录:
AM时段(当日05:00:00 - 12:00:00)
MySQL
SELECT report_Id, report_date FROM reports WHERE TIME(report_date) BETWEEN '05:00:00' AND '12:00:00';
PostgreSQL
SELECT report_Id, report_date FROM reports WHERE TO_CHAR(report_date, 'HH24:MI:SS') BETWEEN '05:00:00' AND '12:00:00';
SQL Server
SELECT report_Id, report_date FROM reports WHERE CONVERT(VARCHAR(8), report_date, 108) BETWEEN '05:00:00' AND '12:00:00';
执行后结果:
| report_Id | report_date |
|---|---|
| 01 | 2022-12-07 08:00:00 |
| 02 | 2022-12-07 12:00:00 |
PM时段(当日13:00:00 - 23:00:00)
MySQL
SELECT report_Id, report_date FROM reports WHERE TIME(report_date) BETWEEN '13:00:00' AND '23:00:00';
PostgreSQL
SELECT report_Id, report_date FROM reports WHERE TO_CHAR(report_date, 'HH24:MI:SS') BETWEEN '13:00:00' AND '23:00:00';
SQL Server
SELECT report_Id, report_date FROM reports WHERE CONVERT(VARCHAR(8), report_date, 108) BETWEEN '13:00:00' AND '23:00:00';
执行后结果:
| report_Id | report_date |
|---|---|
| 03 | 2022-12-07 22:00:00 |
内容的提问来源于stack exchange,提问作者UtahUtahUtah
相关产品推荐
相关产品推荐

