MSSQL에서는 날짜를 여러 가지 형태로 가공할 수 있는 함수들을 많이 제공하고 있습니다. 이번 포스팅에서는 대표적인 날짜 함수(GETDATE, DATEADD, DATEPART, DATEDIFF)의 사용법에 대해서 알아보도록 하겠습니다.
GETDATE
GETDATE함수는 현재 컴퓨터에 설정되어있는 시스템 시간을 불러와주는 함수입니다.
2018-03-31 오전 01:40:30
위와 같이 GETDATE() 함수는 년월일은 물론이거니와 분, 초 까지도 구해줍니다. 하지만 모든 사용자들이 위와 같은 형식으로 사용하지는 않겠죠. 여기서 우리는 우리가 표시할 시간이나 날짜만 적절히 뽑아 올 수도 있고 날짜 형태를 바꿔서 출력할 수도 있습니다.
사용법
--현재 날짜 출력--SELECT GETDATE() AS 시스템일자--현재 날짜의 연,월,일 출력--SELECTYEAR(GETDATE()) AS 년,MONTH(GETDATE()) AS 월,DAY(GETDATE()) AS 일
출력 포맷 변경
--YYYY/MM/DD--Select Convert(varchar(10),Getdate(),111)--YYYYMMDD--Select Convert(varchar(10),Getdate(),112)--HH:MM:SS--Select Convert(varchar(8),Getdate(),108)--HH:MM:SS:mmm--Select Convert(varchar(12),Getdate(),114)--HHMMSS--Select Replace(Convert(varchar(8),Getdate(),108),':','')--HHMMSSmmm--Select Replace(Convert(varchar(12),Getdate(),114),':','')--YYYY/MM/DD HH:MM:SS--Select Replace(Convert(varchar(30),Getdate(),120),'-','/')--YYYY/MM/DD HH:MM:SS--Select Replace(Convert(varchar(30),Getdate(),121),'-','/')--YYYY/MM/DD HH:MM:SS--Select Convert(varchar(10),Getdate(),111) + Space(1) + Convert(varchar(8),Getdate(),108)--YYYYMMDDHHMMSS--Select Convert(varchar(10),Getdate(),112) + Replace(Convert(varchar(8),Getdate(),108),':','')
DATEADD
DATEADD함수는 날짜에 원하는 일수를 더해서 출력해주는 함수입니다. 100일 뒤에는 며칠이다 이런 것은 쉽게 계산하기 힘든데 DATEADD함수를 쓰면 이런 것들을 편리하게 계산할 수 있습니다. 이 함수를 좀 더 응용하면 100일 뒤에는 무슨 요일이다 이렇게도 응용 가능합니다.
사용법
--2개월 후 출력--SELECT DATEADD(MM,2,GETDATE()) AS '2개월후'--30일전 출력--SELECT CONVERT(NVARCHAR(8),DATEADD(DAY,-30,'20180124'),112)AS '30일전'--1달 뒤 요일계산SELECT DATENAME(WEEKDAY,DATEADD(MM,1,GETDATE())) AS'요일계산'
DATEPART
DATEPART함수는 날짜에서 지정한 날짜 형식의 부분만 출력해주는 함수입니다. 아주 다양하게 활용이 가능한 함수입니다.
사용법
--현재 년도 구하기SELECT DATEPART(YEAR,GETDATE());--현재 월 구하기--SELECT DATEPART(MONTH,GETDATE())--현재 일 구하기--SELECT DATEPART(DAY,GETDATE())--현재 분기 구하기--SELECT DATEPART(QQ,GETDATE())--올해의 몇번째 날인지 구하기--SELECT DATEPART(DAYOFYEAR,GETDATE())--올해의 몇째 주인지 구하기--SELECT DATEPART(WEEK,GETDATE())--이번주의 몇번째 날인지 구하기--SELECT DATEPART(WEEKDAY,GETDATE())--오늘이 무슨요일인지 구하기--SELECTCASE DATEPART(WEEKDAY, GETDATE())WHEN '1' THEN '일요일'WHEN '2' THEN '월요일'WHEN '3' THEN '화요일'WHEN '4' THEN '수요일'WHEN '5' THEN '목요일'WHEN '6' THEN '금요일'ELSE '토요일'END AS '요일'
DATEDIFF
DATEDIFF함수는 지정한 두 날자 간의 간격을 계산해주는 함수입니다. 정해준 날짜 형식에 맞춰 리턴 값이 다르므로 적절하게 잘 설정해주셔야 합니다.
사용법
--지정일과의 현재와의 년도차이 계산--SELECT DATEDIFF(YY,'2000-01-01',GETDATE())--지정일과의 현재와의 월차이 계산--SELECT DATEDIFF(MM,'2000-01-01',GETDATE())--지정일과 현재와의 일차이 계산--SELECT DATEDIFF(DD,'2000-01-01',GETDATE())
[MS_SQL] 문자열 자르기 (LEFT, RIGHT, SUBSTRING) 사용법 & 예제
[MS_SQL] 데이터 타입 변환 (CONVERT, CAST) 사용법 & 예제
[MS_SQL] 문자열 치환 (REPLACE, STUFF) 사용법 & 예제
'DB > MSSQL' 카테고리의 다른 글
[MSSQL] 조건문 (CASE WHEN, IF) 함수 사용법 & 예제 (1) | 2018.04.02 |
---|---|
[MSSQL] 공백제거 (LTRIM,RTRIM) 사용법 & 예제 (0) | 2018.04.01 |
[MSSQL] 문자열 치환 (REPLACE,STUFF) 사용법 & 예제 (0) | 2018.03.30 |
[MSSQL] 데이터 타입변환 (CONVERT,CAST) 사용법 & 예제 (1) | 2018.03.30 |
코딩팩토리님의
글이 좋았다면 응원을 보내주세요!