|
데이트 @dt 선언하세요 SET @dt=GETDATE() @number 선언 집합 @number=3 --1. 연중 첫일 또는 마지막 날짜를 명시하세요 --A. 새해 첫날 SELECT Co nVERT(char(5),@dt,120)+ '1-1 ' --B. 연말의 마지막 날 SELECT Co nVERT(char(5),@dt,120)+ '12-31 ' --2. 지정된 날짜가 위치한 분기의 첫날 또는 마지막 날 --A. 학기 첫날 SELECT Co nVERT(datetime, Co nVERT(char(8), DATEADD(모 nth, DATEPART(Quarter,@dt)*3-Mo nth(@dt)-2, @dt), 120)+ '1 ')
--B. 학기 마지막 날 (판결) SELECT Co nVERT(datetime, Co nVERT(char(8), DATEADD(모 nth, DATEPART(분기, @dt)*3개월 nth(@dt), @dt), 120) +CASE WHEN DATEPART(Quarter,@dt) in(1,4) 그럼 '31 '그렇지 않으면 '30' 끝) --C. 학기 마지막 날 (직접 푸시 알고리즘) SELECT DATEADD(Day,-1, Co nVERT(char(8), DATEADD(모 nth, 1+DATEPART(Quarter,@dt)*3-Mo nth(@dt), @dt), 120)+ '1 ') --3. 지정된 날짜가 위치한 월의 첫날 또는 마지막 날 --A. 월초의 첫날 SELECT Co nVERT(datetime, Co nVERT(char(8),@dt,120)+ '1 ')
--B. 한 달의 마지막 날 SELECT DATEADD(Day,-1,Co nVERT(char(8),DATEADD(Mo nth,1,@dt),120)+ '1 ') --C. 월 마지막 요일 (잘못된 방법으로 사용하기 쉽습니다) SELECT DATEADD(Mo nth,1,DATEADD(Day,-DAY(@dt),@dt)) --4. 지정된 날짜가 위치한 요일의 모든 요일입니다 DATEADD(Day,@number-DATEPART(Weekday,@dt),@dt 선택하세요)
--5. 지정된 날짜가 위치한 요일의 모든 요일 --A. 일요일을 주 첫날로 SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt)
--B. 월요일은 한 주의 첫날입니다 SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt)
|