mysql - 要执行什么类型的查询 (SQL)
问题描述
所以,我有一个包含 Room_Name、Name_Of_Booker、Status、Date_Time 的表。我想向管理层展示一个房间有多忙。状态可以是 2 个值,可以是忙碌或空。Date_Time 是插入的时间戳,如“2021-02-18 01:35:40”。
所以表中的记录看起来像:
Rooom_Name | Name_Of_Booker | Status | Date_Time
------------------------------------------------------------
Room 05 | exampleName2 | Busy | 2021-02-18 08:00:00
Room 06 | exampleName1 | Busy | 2021-02-18 09:15:00
Room 06 | exampleName1 | Empty | 2021-02-18 10:30:00
Room 06 | exampleName3 | Busy | 2021-02-18 10:30:00
Room 05 | exampleName2 | Empty | 2021-02-18 10:45:15
Room 05 | exampleName4 | Busy | 2021-02-18 11:00:00
Room 06 | exampleName3 | Empty | 2021-02-18 12:00:30
Room 05 | exampleName4 | Empty | 2021-02-18 14:30:00
所以我想到的是:
SELECT COUNT(*) FROM loc_hist WHERE Location='Room06' AND Date_Time LIKE '2021-02-18%';
运行此查询后,我得到了 10 条记录,这是完美的,现在我想知道如何计算房间忙于另一行的时间,我的意思是房间一直忙的时候。假设房间在 2021 年 2 月 18 日 09:00:00 进入“忙碌”状态,并在 2021 年 2 月 18 日 12:00:00 保持这种状态,此时它进入“空”状态并保持空置状态直到 2021- 02-18 17:00:00。
因此,当我使用今天这样的日期时间运行查询时,它将返回最近 24 小时的结果。
所以我需要的是:
Rooom_Name | Busy | Empty | //example result for 2021-02-18 should look something like because the qry looks between actions made between 2021-02-18 00:00:00 and 2021-02-18 23:59:59
----------------------------------------
Room 05 | 06:15:45 | 17:44:15 |
Room 05 | 02:45:30 | 21:14:30 |
我可以通过查询来完成吗?如果有怎么办?
解决方案
推荐阅读
- ruby-on-rails - 使用 will_paginate 在 erb Rails 中显示最后一条记录
- javascript - 如何在 SweetAlert2 中创建多语言弹出消息?
- javascript - 输入范围不更新
- mysql - 如何编写查询sql查询
- suitecrm - SuiteCRM 与第三方 OAUTH2 服务器的身份验证
- vue.js - Jest spyOn 报告一个方法被调用的对象与实际调用的对象不同
- c - 在 C 中将“char”转换为“int”的逻辑
- php - ASANA API 在 PHP 脚本中显示所有任务
- java - 使用正则表达式替换未知文本
- javascript - 我需要使用javascript总结“foreach”函数获得的数据