IT/MSSQL

MSSQL 날짜함수 / 시간함수 정의 및 예제

!? 2024. 2. 23.

 

 

MSSQL에서 사용되는 날짜와 시간 함수에 대해 자세히 설명해드리겠습니다. 다양한 상황에서 날짜와 시간을 다루고 계산하기 위해 MSSQL은 다양한 내장 함수를 제공합니다. 이러한 함수를 활용하여 데이터베이스에서 날짜와 시간을 조작하고 쿼리할 수 있습니다.

아래에서는 주요한 MSSQL 날짜와 시간 함수들을 소개해드리겠습니다.

 

1. 날짜함수 및 시간함수 정리

 

GETDATE 현재 시스템 날짜와 시간을 반환합니다.
DATEPART 특정 날짜나 시간 요소의 값을 추출합니다.
DATEADD 날짜에 일정한 간격을 더하거나 뺄 수 있습니다.
DATEDIFF 두 날짜 또는 시간 사이의 차이를 계산합니다.
CONVERT 날짜와 시간을 다른 형식으로 변환합니다.
DATEFORMAT 날짜를 특정 형식으로 포맷팅합니다.
EOMONTH 주어진 날짜의 달의 마지막 날짜를 반환합니다.
DAY 날짜에서 일(day) 값을 추출합니다.
MONTH 날짜에서 월(month) 값을 추출합니다.
YEAR 날짜에서 연도(year) 값을 추출합니다.
DATEPART 시간 요소를 추출니다.
DATEFROMPARTS 지정된 연도, 월, 일을 기반으로 날짜를 생성합니다.
SYSDATETIME 현재 시스템의 날짜와 시간을 반환합니다. DATETIME2 형식을 사용합니다.
FORMAT 날짜와 시간을 원하는 형식으로 출력할 수 있습니다.

 

 

 

 

2. 날짜함수 / 시간함수 정의 및 예제

 

1. GETDATE

- 현재 시스템 날짜와 시간을 반환합니다.

SELECT GETDATE() AS 현재날짜시간;

 

2. DATEPART

- 특정 날짜나 시간 요소의 값을 추출합니다.

SELECT DATEPART(YEAR, GETDATE()) AS 현재년도;
SELECT DATEPART(MONTH, GETDATE()) AS 현재월;
SELECT DATEPART(DAY, GETDATE()) AS 현재일;
-- 현재 날짜에서 연도, 월, 일을 추출하여 반환합니다.

 

3. DATEADD

- 날짜에 일정한 간격을 더하거나 뺄 수 있습니다.

SELECT DATEADD(DAY, 7, GETDATE()) AS 일주일후날짜;
SELECT DATEADD(MONTH, -1, GETDATE()) AS 한달전날짜;
-- 현재 날짜에 일주일 뒤의 날짜와 한달 전의 날짜를 계산하여 반환합니다.

 

4. DATEDIFF

- 두 날짜 또는 시간 사이의 차이를 계산합니다.

SELECT DATEDIFF(DAY, '2022-01-01', '2022-01-10') AS 날짜차이;
SELECT DATEDIFF(HOUR, '2022-01-01 10:00:00', '2022-01-01 15:30:00') AS 시간차이;
-- 2022-01-01'부터 '2022-01-10'까지의 날짜 차이와 '10:00:00'부터 '15:30:00'까지의 시간 차이를 계산하여 반환합니다.

 

5. CONVERT

- 날짜와 시간을 다른 형식으로 변환합니다.

SELECT CONVERT(VARCHAR, GETDATE(), 120) AS 현재날짜시간;
SELECT CONVERT(VARCHAR, GETDATE(), 101) AS 현재날짜;
SELECT CONVERT(VARCHAR, GETDATE(), 108) AS 현재시간;
-- 날짜와 시간을 지정된 형식으로 변환하여 문자열로 반환합니다.

 

 

6. DATEFORMAT

- 날짜를 특정 형식으로 포맷팅합니다.

SELECT FORMAT(GETDATE(), 'yyyy-MM-dd') AS 현재날짜;
SELECT FORMAT(GETDATE(), 'HH:mm:ss') AS 현재시간;
-- 날짜를 'yyyy-MM-dd' 형식으로, 시간을 'HH:mm:ss' 형식으로 포맷팅하여 반환합니다.

 

7. EOMONTH (2012 버전 이후부터)

- 주어진 날짜의 달의 마지막 날짜를 반환합니다.

SELECT EOMONTH(GETDATE()) AS 이번달마지막날;
SELECT EOMONTH('2022-02-15') AS 지정월마지막날;
-- 현재 달의 마지막 날짜와 '2022-02-15'가 속한 달의 마지막 날짜를 반환합니다.

 

8. DAY

- 날짜에서 일(day) 값을 추출합니다.

SELECT DAY(GETDATE()) AS 현재일;
-- 현재 날짜에서 일(day) 값을 추출하여 반환합니다.

 

 

 

 

9. MONTH

- 날짜에서 월(month) 값을 추출합니다.

SELECT MONTH(GETDATE()) AS 현재월;
-- 날짜에서 월(month) 값을 추출합니다.

 

10. YEAR

- 날짜에서 연도(year) 값을 추출합니다.

SELECT YEAR(GETDATE()) AS 현재년도;
-- 현재 날짜에서 연도(year) 값을 추출하여 반환합니다.

 

11. DATEPART (시간 요소 추출)

- 시간 요소를 추출할 수도 있습니다.

SELECT DATEPART(HOUR, GETDATE()) AS 현재시간;
SELECT DATEPART(MINUTE, GETDATE()) AS 현재분;
SELECT DATEPART(SECOND, GETDATE()) AS 현재초;
-- 시간(hour), 분(minute), 초(second) 값을 추출하여 반환합니다.

 

12. DATEFROMPARTS

- 지정된 연도, 월, 일을 기반으로 날짜를 생성합니다.

SELECT DATEFROMPARTS(2022, 1, 15) AS 지정날짜;
-- 연도(year)가 2022, 월(month)이 1, 일(day)이 15인 날짜를 생성하여 반환합니다.

 

13. SYSDATETIME

- 현재 시스템의 날짜와 시간을 반환합니다. DATETIME2 형식을 사용합니다.

SELECT SYSDATETIME() AS 현재날짜시간;

 

14. FORMAT() 함수 (출력 형식 지정)

- 날짜와 시간을 원하는 형식으로 출력할 수 있습니다.

SELECT FORMAT(GETDATE(), 'yyyy-MM-dd HH:mm:ss') AS 현재날짜시간;
SELECT FORMAT(GETDATE(), 'MMM dd, yyyy') AS 현재날짜;
SELECT FORMAT(GETDATE(), 'HH:mm:ss') AS 현재시간;
-- 날짜와 시간을 지정된 형식으로 포맷팅하여 반환합니다.

 

 

위에서 소개한 함수들은 MSSQL에서 자주 사용되는 날짜와 시간을 다루는 함수들입니다. 이는 데이터베이스에서 날짜와 시간을 추출, 계산, 변환하는 데 유용하게 활용됩니다. 여기에는 더 많은 날짜와 시간 함수가 있으며, 필요에 따라 MSSQL 공식 문서를 참조하시면 더 많은 정보를 얻을 수 있습니다.

기억해야 할 중요한 점은 날짜와 시간 함수를 사용할 때 데이터베이스의 날짜 및 시간 형식을 고려해야 한다는 것입니다. 함수의 인수와 반환 값의 데이터 형식을 확인하여 정확한 결과를 얻을 수 있도록 해야 합니다. 또한 함수의 성능과 성능 향상을 위해 인덱스를 적절하게 활용하는 것도 중요합니다.

 

댓글