2016-11-12 3 views
0

datetime 레코드 문자열이 있습니다. 나는 날짜/시간 값을 읽고 이것을 특정 날짜에 할당하는 case 조건이나 if 문을 만들고 싶습니다.특정 시간 사이에 SQL datetime이 특정 날짜로 변환됩니다.

일 범위는 2:45 PM에서 다음날 오후 2시 45 분까지입니다. 이 범위는 '다음날'로 간주됩니다.

예. 게시 시간은 3:42 PM 11/12/2016이므로 11/13/2016으로 표시됩니다. 이 게시물이 오후 2시 42 분 (2011 년 12 월 12 일)에 작성 되었다면 2011 년 12 월 12 일을 읽었을 것입니다.

지금까지 CONVERT (날짜, 'datetime')이 시간 범위 제약으로 인해 작동하지 않는다고 생각합니다. 그 다음날에 도달 있도록

감사

답변

3

사용 DATEADD 함수는 날짜에 시간을 추가 할 수 있습니다. 오후 2시 45 분에 9시 15 분을 추가해야합니다.

+0

2:45 기준은 고정되어 있지만 datetime 값은 하루 중 언제라도 가능합니다. 이것이 어떻게 작동하는지 나는 모르겠다. 고정 값 9:15 등을 넣을 수 없습니다. – Nicho247

+0

@ Nicho247 하루 동안 언제든지 정상적으로 작동합니다. –

0

생각 해봐야 겠어. datetime 시간 값이 2:45보다 큰지 확인하고, 그렇다면 날짜로 변환하고 날짜를 추가하고, 그렇지 않으면 날짜로 변환하십시오.

CASE 
    WHEN CAST (MAIN.TimeOfRftDecision AS Time) > '14:45:00' THEN DATEADD(dd,1,CONVERT (Date, MAIN.TimeOfRftDecision)) 
    ELSE CONVERT (Date, MAIN.TimeOfRftDecision) 
END AS 'DayOfRft'