DB/MSSQL
[MSSQL] [날짜] 1.날짜 연산 함수(DATEADD, DATEDIFF)
alien22c
2024. 2. 28. 10:18
728x90
728x90
자주 사용하면서 찾게되는 날짜함수를 정리해본다.
참고로, 요즘은 다들 글로벌 서비스를 하고 있어 날짜 반환 함수로 GETDATE()보다는 타임오프셋을 확인할 수 있는 SYSDATETIMEOFFSET()을 많이 사용하게 된다. 예제SQL에서는 SYSDATETIMEOFFSET()을 사용하였다.
DATEADD
: 날짜에 원하는 일수를 더하거나 빼서 출력해 주는 함수
- 구문: DATEADD (datepart, number, date ) -- 지정된 date의 지정된 datepart에 간격을 더하여 새 datetime 값을 반환
- 예제SQL
SELECT DATEADD(DAY, -1, SYSDATETIMEOFFSET()) AS [어제] , DATEADD(DAY, 1, SYSDATETIMEOFFSET()) AS [내일] ; |
DATEDIFF
: 시작일자와 종료일자 사이의 일수 또는 시간, 분, 초 등의 차이를 계산해주는 함수
- 구문: DATEDIFF ( datepart , startdate , enddate ) -- startdate와 enddate 사이의 datepart 차이를 계산
- 예제SQL
SELECT DATEDIFF(YEAR, '2023-02-27', SYSDATETIMEOFFSET()) AS '년' ,DATEDIFF(MONTH, '2023-02-27', SYSDATETIMEOFFSET()) AS '월' ,DATEDIFF(DAY, '2023-02-27', SYSDATETIMEOFFSET()) AS '일' ; |
참고) DATEPART 정리
SELECT SYSDATETIMEOFFSET() AS [오늘] -- 조회결과: 2024-02-28 09:50:27.2998164 +09:00
명칭 | DATEPART | DATEPART(약어) | 반환값 | 비고 |
년 | YEAR | YY, YYYY | 2024 | |
월 | MONTH | MM, M | 2 | |
일 | DAY | DD, D | 28 | |
시 | HOUR | HH | 9 | |
분 | MINUTE | MI, N | 50 | |
초 | SECOND | SS, S | 27 | |
밀리초 | MILLISECOND | MS | 299 | |
마이크로초 | MICROSECOND | MCS | 299816 | |
나노초 | NANOSECOND | NS | 299816400 | |
주 | WEEK | WK, WW | 9 | |
분기 | QUARTER | QQ, Q | 1 | |
타임오프셋 | TZOFFSET | TZ | 540 | 시간 오프셋을 분 단위로 반환 |
728x90
728x90