본문 바로가기

DATABASE/DATABASE

[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")

   )

)