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 공식 문서를 참조하시면 더 많은 정보를 얻을 수 있습니다.
기억해야 할 중요한 점은 날짜와 시간 함수를 사용할 때 데이터베이스의 날짜 및 시간 형식을 고려해야 한다는 것입니다. 함수의 인수와 반환 값의 데이터 형식을 확인하여 정확한 결과를 얻을 수 있도록 해야 합니다. 또한 함수의 성능과 성능 향상을 위해 인덱스를 적절하게 활용하는 것도 중요합니다.
'IT > MSSQL' 카테고리의 다른 글
MSSQL 함수 개요와 활용 - 데이터 관리의 핵심 요소 (0) | 2024.02.25 |
---|---|
MSSQL 시스템변수 정의 및 예제 (0) | 2024.02.24 |
MSSQL 개행문자 ENTER 찾기 (0) | 2024.02.22 |
MSSQL 프로시저 PROCEDURE 서식 및 생성 예제 (0) | 2024.02.19 |
MSSQL 함수 FUNCTION 서식 및 생성 예제 (0) | 2024.02.17 |
댓글