Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在x和y值之间有两列_Mysql_Sql - Fatal编程技术网

Mysql 在x和y值之间有两列

Mysql 在x和y值之间有两列,mysql,sql,Mysql,Sql,我有以下疑问: SELECT DISTINCT T1.SCHEDULE_START, T1.SCHEDULE_END, T2.SCHEDULE_TYPE_ID, T2.SCHEDULENAME FROM schedule_intermediate T1 JOIN schedule_type T2 ON T1.SCHEDULE_TYPE_ID = T2.SCHEDULE_TYPE_ID WHERE ( SELECT COUNT(*) FROM reservation R JOIN sche

我有以下疑问:

SELECT DISTINCT T1.SCHEDULE_START, T1.SCHEDULE_END, T2.SCHEDULE_TYPE_ID, T2.SCHEDULENAME
FROM schedule_intermediate T1 JOIN schedule_type T2 ON T1.SCHEDULE_TYPE_ID = T2.SCHEDULE_TYPE_ID
WHERE (
    SELECT COUNT(*) FROM reservation R JOIN schedule_intermediate SI ON R.SCHEDULEID_GENERATED = SI.SCHEDULEID_GENERATED
    WHERE RESOURCEID = 456 
    AND SI.SCHEDULEID_GENERATED = 4 
    AND R.RESERVATIONDUEDATE = '2014-08-06 07:50:00'
    AND R.RESERVATIONEXPIREDATE = '2014-08-06 08:35:00'
    HAVING T1.SCHEDULE_START != DATE_FORMAT('2014-08-06 07:50:00', '%H:%i:%s')
    AND    T1.SCHEDULE_END != DATE_FORMAT('2014-08-06 08:35:00', '%H:%i:%s')
) = 0
ORDER BY T1.SCHEDULE_START
它用于仅选择与其他计划没有冲突的计划

这将产生:

但是,它从时间表中排除了
7:50:00
08:35:00
,并且排除了
08:35:00至09:20:00
期间


我想排除提供的范围之间的时间段,但是,我需要包括提供的具体时间(
07:50:00和08:35:00
),只排除该范围内的分钟数(从
7:51:00到8:34:00

有没有办法做到这一点

我已经试过了:

HAVING T1.SCHEDULE_START <= DATE_FORMAT('2014-08-06 07:50:00', '%H:%i:%s')
AND    T1.SCHEDULE_END >= DATE_FORMAT('2014-08-06 08:35:00', '%H:%i:%s') 
采用T1.SCHEDULE\u START=DATE\u格式('2014-08-06 08:35:00','%H:%i:%s')

但这一个返回0列,同样反转符号也会产生相同的结果。我想不出别的办法来做这件事

是否要排除在指定时间内开始或结束的所有结果?你的问题不清楚。如果是,那么相关部分可以是

AND ( 
      T1.SCHEDULE_START <= DATE_FORMAT('2014-08-06 07:50:00', '%H:%i:%s')
      OR T1.SCHEDULE_START >= DATE_FORMAT('2014-08-06 08:35:00', '%H:%i:%s')
   ) 
AND ( 
      T1.SCHEDULE_END <= DATE_FORMAT('2014-08-06 07:50:00', '%H:%i:%s') 
      OR T1.SCHEDULE_END >= DATE_FORMAT('2014-08-06 08:35:00', '%H:%i:%s')
    )
和(
T1.SCHEDULE\u START=DATE\u格式('2014-08-06 08:35:00','%H:%i:%s')
) 
及(
T1.SCHEDULE_END=DATE_格式('2014-08-06 08:35:00','%H:%i:%s')
)

我想排除指定范围内的时间段。这意味着在07:50:00和08:35:00之间开始的任何内容都不应显示。但是,如果时段开始或结束于限值(7:50:00或8:35:00),则应显示它们。