[MSSQL] 날짜(date) 관련 함수
MSSQL에서 날짜 (DATE) 관련 함수
날짜 데이터를 추출할 때 유용한 다른 함수들 몇 가지를 소개해드리겠습니다
- YEAR()
날짜에서 연도를 추출합니다. - MONTH()
날짜에서 월을 추출합니다. - DAY()
날짜에서 일을 추출합니다. - DATEPART()
날짜 또는 시간 값에서 특정 부분(연도, 월, 일, 시, 분, 초 등)의 값을 추출합니다.
예를 들어, DATEPART(YEAR, 날짜열)은 해당 날짜의 연도를 반환합니다. - DATEADD()
날짜에 특정 시간 간격을 더하거나 뺄 수 있습니다.
예를 들어, DATEADD(DAY, 7, 날짜열)은 해당 날짜에 7일을 더한 값을 반환합니다. - DATEDIFF()
두 날짜 또는 시간 간의 차이를 계산합니다.
예를 들어, DATEDIFF(DAY, 시작날짜, 종료날짜)는 두 날짜 간의 일 수 차이를 반환합니다. - GETDATE()
현재 날짜와 시간을 반환합니다. - CONVERT()
날짜와 시간 값을 다른 형식으로 변환합니다. 예를 들어, CONVERT(VARCHAR, 날짜열, 101)은 날짜를 문자열로 변환하는데, "101"은 월/일/연도 순서로 표시됨을 의미합니다. - FORMAT()
지정된 형식에 따라 날짜와 시간 값을 포맷팅합니다. 예를 들어, FORMAT(날짜열, 'yyyy-MM-dd')은 날짜를 "연도-월-일" 형식으로 포맷팅합니다.
여러가지 날짜함수들이 있는데, 제가 주로 사용하는 함수는 DATEADD()와 DATEDIFF() 입니다.
이 두 함수를 추가적으로 설명하자면,
DATEADD()
1. DATEADD(DAY, 7, '2022-01-01')
'2022-01-01'에 7일을 더한 값을 반환합니다. 결과는 '2022-01-08'입니다.
2. DATEADD(MONTH, -3, '2022-01-01')
'2022-01-01'에서 3개월을 뺀 값을 반환합니다. 결과는 '2021-10-01'입니다.
3. DATEADD(YEAR, 2, '2022-01-01')
'2022-01-01'에 2년을 더한 값을 반환합니다. 결과는 '2024-01-01'입니다.
4. DATEADD(HOUR, 12, '2022-01-01 10:00:00')
'2022-01-01 10:00:00'에 12시간을 더한 값을 반환합니다. 결과는 '2022-01-01 22:00:00'입니다.
5. DATEADD(MINUTE, 30, '2022-01-01 10:00:00')
'2022-01-01 10:00:00'에 30분을 더한 값을 반환합니다. 결과는 '2022-01-01 10:30:00'입니다.
위의 예시에서 DATEADD() 함수의 첫 번째 매개변수는 시간 단위를 지정하고, 두 번째 매개변수는 해당 단위에 더하거나 뺄 값을 지정하며, 세 번째 매개변수는 기준이 되는 날짜 또는 시간 값을 지정합니다.
원하시는 날짜 또는 시간에 지정한 단위로 값을 더하거나 뺄 때 DATEADD() 함수를 사용하면 편리합니다.
DATEDIFF()
1. DATEDIFF(YEAR, '2000-01-01', '2022-01-01')
'2000-01-01'과 '2022-01-01' 사이의 연도 차이를 계산합니다. 결과는 22입니다. (22 - 0)
2. DATEDIFF(MONTH, '2021-01-01', '2022-03-01')
'2021-01-01'과 '2022-03-01' 사이의 월 차이를 계산합니다. 결과는 14입니다. (12 + 2)
3. DATEDIFF(DAY, '2021-01-01', '2021-01-15')
'2021-01-01'과 '2021-01-15' 사이의 일 수 차이를 계산합니다. 결과는 14입니다. (15 - 1)
4. DATEDIFF(HOUR, '2021-01-01 12:00:00', '2021-01-01 18:00:00')
'2021-01-01 12:00:00'과 '2021-01-01 18:00:00' 사이의 시간 차이를 계산합니다. 결과는 6입니다. (18 - 12)
5. DATEDIFF(MINUTE, '2021-01-01 12:00:00', '2021-01-01 12:30:00')
'2021-01-01 12:00:00'과 '2021-01-01 12:30:00' 사이의 분 차이를 계산합니다. 결과는 30입니다. (30 - 0)
위의 예시에서 DATEDIFF() 함수의 첫 번째 매개변수는 시간 단위를 지정하고, 두 번째 매개변수와 세 번째 매개변수에는 차이를 계산할 두 날짜 또는 시간 값을 지정합니다.
원하시는 날짜 또는 시간의 차이를 원하는 단위로 계산할 때 DATEDIFF() 함수를 사용하면 좋습니다.
마지막으로 DATEDIFF() 예시를 하나 더 들면,
DATEDIFF(week, startDate, GETDATE()) = 1 처럼 값을 설정하게되면, 해당하는 주의 데이터를 확인할수있습니다.
월요일부터 금요일까지 데이터를 취합하고싶을때 사용하면 편리하게 값을 얻을수있습니다.