2012-03-07 6 views
4

다음과 같은 쿼리를 만들고 싶지만 올바르게 코딩하는 방법이 확실하지 않습니다. StartTime에서 1 시간 이내에 모든 예약을 반환하고 싶습니다. 나왔어 :SQL보다 큼, 같음,보다 작음

SELECT BookingId, StartTime 
FROM Booking 
WHERE StartTime <=> 1.00 

가능합니까? 또는 그것의 둘레에 방법 있는가?

웹상에서 발견되는 모든 항목은 동일한 쿼리에서보다 큼, 같음 및 미만을 모두 사용하지 않았습니다. 당신에게 치죠

+0

당신이 1 시간을 의미 workL해야합니까? – Phil

+0

사람이 너보다 나이가 많거나 (나이가 더 큼), 나이가 같거나 (너보다 적다) 사람보다 작 으면, 그 사람은 지구상의 어떤 살아있는 사람이 될 수있다. 죽은 자의 나이를 정의하고 싶습니다.) – JayC

+0

누구나 눈치 채지 못했거나 혼란 스럽다면 OP에 '<' and the '>'이 표시됩니다. – Malachi

답변

10

는 SQL 서버를 사용 : 시작 시간이

WHERE StartTime BETWEEN DATEADD(HOUR, -1, GetDate()) 
        AND DATEADD(HOUR, 1, GetDate()) 
4

경우 날짜 형식은 다음 확실히 당신은 시간에 대한 자신의 값을 사용할 것

SELECT BookingId, StartTime 
FROM Booking 
WHERE StartTime >= '2012-03-08 00:00:00.000' 
AND StartTime <= '2012-03-08 01:00:00.000' 

같은 것을 사용할 수 있지만 이것은 상한과 하한 모두를 포함하여 1 시간 동안의 모든 것을 제공해야합니다.

GETDATE() 함수를 사용하여 현재 날짜를 확인할 수 있습니다. 이 같은

+0

AND가 작동하는지 물어볼 예정이었습니다. 귀하의 신속한 답변을 주셔서 감사합니다 – user1081326

+0

@ user1081326 AND는 작동하지만 다른 2 개의 답변에 표시된대로 두 가지 사이의 문장을 사용하는 것이 좋습니다. – Pepe

2

뭔가를해야만 중 하나를 지정된 시간의 측면 그렇지

SELECT BookingId, StartTime 
FROM Booking 
WHERE StartTime between dateadd(hour, -1, getdate()) and getdate() 
2
declare @starttime datetime = '2012-03-07 22:58:00' 

SELECT BookingId, StartTime 
FROM Booking 
WHERE ABS(DATEDIFF(minute, StartTime, @starttime)) <= 60 
관련 문제