繁体   English   中英

SQL比较同一列中的两个日期时间

[英]SQL comparing 2 datetime's from the same column

我正在尝试将DATETIME的值与列+时间成分的其他结果进行比较。 基本上,我需要它来显示一个房间是否有重叠时间,将开始时间+持续时间与该房间的其他开始时间进行比较。 到目前为止,我已经写了这个,但是我不确定我实际上需要问什么。

SELECT roomNo, startDateTime AS `start1`,
(SELECT startDateTime FROM roombooking WHERE (`start1` + duration - startDateTime) > 0 GROUP BY roomNo) AS `start-Time2`
FROM roombooking;

结果应显示为

---------------------------------------------
| roomNo | start1          | start2         |
---------------------------------------------
| 1      | 2016-12-8 12:00 | 2016-12-8 12:10|
| 1      | 2016-12-8 12:00 | 2016-12-8 12:15|
| 2      | 2016-12-8 6:00  | 2016-12-8 6:45 |
---------------------------------------------

假设12次会议的持续时间> 15分钟,而2次会议的持续时间> 45分钟

重叠的预订表明自我参与:

select rb.*, rb2.*
from roombooking rb join
     roombooking rb2
     on rb.roomno = rb2.roomno and
        rb.startdatetime < rb2.startdatetime + interval rb2.duration minutes and
        rb.startdatetime + interval rb.duration minutes > rb.startdatetime;

注意:假设持续时间以分钟为单位。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM