Data Modeling Evangelist Kaien Kim's Blog
[SQLServer] 날짜관련 함수 본문
-- 15일 후 날짜구하기
SELECT GETDATE(), DATEADD(DD, 15, getdate())
-- 3달 후 날짜구하기
SELECT GETDATE(), DATEADD(MM, 3, getdate())
-- 기간차이 구하기(날짜 사이의 간격)
SELECT DATEDIFF(year, '20051220', '20060101')
SELECT DATEDIFF(month, '20051220', '20060101')
SELECT DATEDIFF(day, '20051220', '20060101')
SELECT DATEDIFF(hh, date1, date2)
SELECT DATEDIFF(mi, date1, date2) -- 분
SELECT DATEDIFF(ss, date1, date2) -- 초
SELECT DATEDIFF(ms, date1, date2) -- 밀리세컨드
--현재 달의 첫 째날 구하기
SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
--현재주의 월요일 구하기
SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
--현 재해의 첫 째날 구하기
SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
--현재분기의 첫 째날 구하기
SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
--현재 날의 자정주의 구하기
SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
select dateadd(ms,-3,DATEADD(mm,DATEDIFF(mm,0,getdate() ), 0))
--지난달의 마지막 날 구하기
select dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate() ), 0))
--지난해의 마지막 날 구하기
select dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate() )+1, 0))
--현재 달의 마지막 날 구하기
select dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate() )+1, 0))
--현재 해의 마지막 날 구하기
그럼 마지막으로 한번 더 응용해서 해당 달의 첫째 주 월요일을 구해보자
select DATEADD(wk, DATEDIFF(wk,0, dateadd(dd,6-datepart(day,getdate()),getdate())), 0)
--현재 달의 첫째 주 월요일 구하기
'DATA > SQLServer' 카테고리의 다른 글
[SQLServer] Unix_timestamp 형식의 데이터를 일반시간으로 변환 (0) | 2009.08.27 |
---|---|
[SQLServer] SQLServer2005설치 후 확인하기 (0) | 2009.07.14 |
[SQLServer]DBCC명령어 모음 (0) | 2009.04.20 |
[SQLServer] tempdb이동 (0) | 2009.02.09 |
[SQLServer]특정테이블의 컬럼정보 가져오기 (0) | 2009.01.16 |