이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 10825|회답: 0

[출처] 실용 SQL 문장: 날짜 추정

[링크 복사]
게시됨 2014. 11. 26. 오후 3:53:01 | | |

데이트 @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)






이전의:sqlserver가 '%keyword%'와 같은 것을 처리할 때 인덱스 활용 문제
다음:ORACLE 11g 신규 기능 - DDL 잠금이 DML 잠금을 기다릴 수 있게 합니다
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com