mysql - 通过sql查询分组的时间段

标签 mysql sql datetime select group-by

我正在为图书馆开发一个图书预订系统。 在预订表中有以下字段: id_reservation、id_user、id_book、日期时间。

我想统计早上完成的预订和晚上完成的预订,假设早上在 10:00 到 15:00 之间,晚上在 15:00 到 21:00 之间。

我需要类似的东西: 按 time_period 从预订组中选择 count(id_reservation) 作为total_reservations

有任何帮助如何区分两个时间段以便在GROUP BY中使用它们吗?

非常感谢!!

最佳答案

试试这个:

SELECT (CASE WHEN TIME(datetime) BETWEEN '10:00:00' AND '15:00:00' THEN 'Morning' 
             WHEN TIME(datetime) BETWEEN '15:00:00' AND '21:00:00' THEN 'Evening' 
             ELSE 'NA'
        END) AS time_period, 
       COUNT(id_reservation) AS total_reservations 
FROM reservations 
GROUP BY time_period;

关于mysql - 通过sql查询分组的时间段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27526419/

相关文章:

MySQL嵌套连接

sql - 仅在并行行之间合并,在 SQL 中

sql - SQL Server 数据库级触发器和服务器级触发器的区别

javascript - 不同的日期值

python - Postgres+SQLAlchemy 在使用 default=func.now() 时将时间转换为 UTC

PHP/MySQL - 时区中的当前日期/时间

php - MySQL 双等号

mysql - 执行查询时出现sql语法错误(sql注入(inject))?

mysql - SQL- 将列中的值相加

node.js - NodeJS 测试一天中不同时间和时区的日期时间