[DATABASE/Mysql] 시간, 기간 (FROM TO) 중복 체크 쿼리
[DATABASE/Mysql] 시간, 기간
(FROM TO) 중복 체크 쿼리
이번에 강의실의 중복 쿼리를 짜게되어서 포스팅합니다.
필요할 것 같기도해서 ^^;
마이바티스트 구문을 그대로 썻으니 필요에 따라 변경하면 될 것 같네요 .
# 참고
시작 일자 = lecStDate
쫑료 일자 = lecEdDate
시작 시간 = lecStTime
종료 시간 = lecEdTime
SELECT
*
FROM
table
WHERE 1=1
AND
(
(lecStDate >= DATE_FORMAT(#{lecStDate},'%Y%m%d')
AND
lecStDate <![CDATA[<=]]> DATE_FORMAT(#{lecEdDate},'%Y%m%d')
)
OR
(lecEdDate >=DATE_FORMAT(#{lecStDate},'%Y%m%d')
AND
lecEdDate <![CDATA[<=]]> DATE_FORMAT(#{lecEdDate},'%Y%m%d')
)
OR
(lecStDate <![CDATA[<=]]> DATE_FORMAT(#{lecStDate},'%Y%m%d')
AND
lecEdDate >=DATE_FORMAT(#{lecEdDate},'%Y%m%d')
)
OR
(lecStDate >= DATE_FORMAT(#{lecStDate},'%Y%m%d')
AND
lecEdDate <![CDATA[<=]]> DATE_FORMAT(#{lecEdDate},'%Y%m%d')
)
)
AND
(
(lecStTime >= TIME_FORMAT(#{lecStTime}, "%H %i %s")
AND
lecStTime <![CDATA[<=]]> TIME_FORMAT(#{lecEdTime}, "%H %i %s")
)
OR
(lecEdTime >=TIME_FORMAT(#{lecStTime}, "%H %i %s")
AND
lecEdTime <![CDATA[<=]]> TIME_FORMAT(#{lecEdTime}, "%H %i %s")
)
OR
(lecStTime <![CDATA[<=]]> TIME_FORMAT(#{lecStTime}, "%H %i %s")
AND
lecEdTime >=TIME_FORMAT(#{lecEdTime}, "%H %i %s")
)
OR
(lecStTime >= TIME_FORMAT(#{lecStTime}, "%H %i %s")
AND
lecEdTime <![CDATA[<=]]> TIME_FORMAT(#{lecEdTime}, "%H %i %s")
)
)