mysql - 将sql查询结果分成半小时部分

标签 mysql sql repeat

我有一个疑问

SELECT count(dayofweek(created)) FROM `rental` 
WHERE dayofweek(created) < 6
AND time(created) between "10:00:00" and "10:30:00"

我每天每半小时重复一次查询,以查看最繁忙的时间,即该期间的租赁数量。

有没有办法将整个事情作为 1 个查询来完成,即输出如下所示:

period 1 | 1200
period 2 | 2130
period 3 | 2453

等等?

现在我一遍又一遍地重复它,非常乏味...... 谢谢

最佳答案

我最好的跨数据库管理系统方法是在“rental”表中添加一列,其中包含一个整数,将值时间(创建)表示为 30 分钟时段(即 0 = 1970 年 1 月 1 日 00:00:00 到 00 :29:59, 1 = 1 jan 1970 00:30:00 到 00:59:59, 2 = 1 jan 1970 01:00:00 到 01:29:59 -- 这很简单,基本上就是时间戳/30000 向下舍入),然后使用该字段对值进行分组。

您可以即时进行除法,但这会在某些 DBMS 上产生分组问题,该解决方案更具可扩展性并且与几乎任何 dbms 完全兼容。

希望有帮助。

关于mysql - 将sql查询结果分成半小时部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21040163/

相关文章:

mysql - 如何根据 MySQL 中的多个字段查找重复行?

mysql - 获取 "a"或 "b"但不是两者的 SQL 条件

sql - 如何更改此 SQL 以便我可以从每个作者那里获取一篇文章?

android - 位图重复+圆角

R 中数据帧中固定行数的重复值

ios - 使用 Swift 3 中的日期选择器中的触发日期安排每周可重复的本地通知

php - MySQL INSERT 只插入 foreach 循环的第一行

mysql - 如何在不创建两个类的情况下在 MySQL 中实现双重关系(Null,Not Null)?

mysql - 如何在单个查询中选择具有多个特定列值的行?

mysql - sql在phpmyadmin中合并2个表