2014-12-04 6 views
1

나는 저장할 테이크 타임을위한 테이블을 가지고있다. 아래와 같이 "day_shift (1)"및 "night_shift (0)"과 합성됩니다.GETDATE()를 단지 일, 월, 연도를 무시하도록 캐스팅하는 방법

enter image description here

나는 (GETDATE() 함수를 사용하여) 현재 시간을 넣어합니다. 이 현재 시간을 "일 (1)"또는 "밤 (0)"인지 알아야합니다. 이런 식의 내 질문.

SELECT [day_shift_flag] 
FROM [company_working_time] 
WHERE GETDATE() BETWEEN [start_time] AND[end_time] 

그러나 GETDATE()에서받은 날짜는 '1900-01-01' 에만 시간을 비교하고 무시하는 방법 년, 월, 일하지 않기 때문에 그것을 찾을 수 없습니다. 어떻게해야합니까?

+2

무시 할 수 방법에 따라, 대신 사용할 수있는 TIME 데이터 타입이있다. –

답변

5

시간 데이터 형식으로 DateTime을 캐스팅 할 수 있습니다. 예를 들어 :

SELECT 
    [day_shift_flag] 
FROM [company_working_time] 
WHERE 
CAST(GETDATE() AS TIME) BETWEEN CAST([start_time] AS TIME) AND CAST([end_time] AS TIME) 
2

당신은 SQL-Server 버전에 따라 년, 월, 일

 SELECT [day_shift_flag] 
     FROM [company_working_time] 
     WHERE DatePart(HH,GETDATE()) BETWEEN DatePart(HH,[start_time]) AND DatePart(HH,[end_time])