안녕하세요!
쿼리문 질문좀 드릴께요.
MS-SQL은 잘 안써봐서요..
예약관련 부분을 만들고 있는데, 일자 및 시간대로 등록된 예약이 있는지 확인을 하는 쿼리문입니다.
테이블의 값은 아래 형식으로 되어 있습니다.
intSeq strRoomCode strStartDate strEndDate
3474 C001 2013-11-27 09:00:00.000 2013-11-27 12:00:00.000
3521 C001 2013-11-27 13:00:00.000 2013-11-27 14:00:00.000
3568 C001 2013-11-27 14:00:00.000 2013-11-27 15:00:00.000
3615 C001 2013-11-27 15:00:00.000 2013-11-27 16:00:00.000
3662 C001 2013-11-27 17:00:00.000 2013-11-27 18:00:00.000
3707 C001 2013-11-28 17:00:00.000 2013-11-28 18:00:00.000
예를 들어 사용자가 2013년 11월 27일 10시부터 11시까지 strRoomCode 'C001'인걸 사용하려고 예약시 예약이 불가능하도록 해야 합니다.
쿼리문은 아래와 같이 만들어 봤는데, 이게 맞는지 궁금합니다.
SELECT * FROM [테이블명]
WHERE (('2013-11-27 10:00' BETWEEN [strStartDate] AND [strEndDate]) OR ('2013-11-27 11:00' BETWEEN [strStartDate] AND [strEndDate])) AND [strRoomCode] = 'C001'
일자와 시간이 중복되어 있는 값이 있는지 확인 후 에약을 할 수 있도록 해야 하거든요..
한번 보시고 맞는지 여부와 다른 방법이 있는지 여부를 알려 주시면 감사드리겠습니다..
Comment 1
-
건우아빠
2013.03.26 13:00
그렇게 하시면 됩니다.
필요에 따라서는 룸의 예약 시간 표를 보여주는 쿼리로 만드시는것도 좋을듯 합니다.
비슷한 질문 http://www.sqler.com/317182