Database/Mssql
MSSQL - DATE CONVERT,FORMAT 날짜 변환 방법
코드 스미스
2024. 9. 7. 00:47
MSSQL에서 날짜 형식을 변환하는 방법으로는 주로 CONVERT와 FORMAT 함수를 사용합니다.
각 함수는 다양한 형식으로 날짜를 변환할 수 있도록 도와줍니다.
1. CONVERT 함수
CONVERT 함수는 세 가지 인자를 받습니다:
- 변환할 데이터
- 변환할 데이터 타입 (보통 VARCHAR 사용)
- 날짜 형식을 결정하는 스타일 번호
기본 형식:
CONVERT(VARCHAR, <날짜 값>, <스타일 번호>)
2. FORMAT 함수
FORMAT 함수는 NET 스타일 형식 문자열을 사용하여 날짜를 변환할 수 있는 방법입니다.
기본 형식:
FORMAT(<날짜 값>, '형식 문자열')
예제 코드 및 스타일 번호 목록
현재 날짜: GETDATE() 사용
SELECT GETDATE() AS OriginalDate;
CONVERT 함수 예제
다음은 주요 스타일 번호에 따른 CONVERT 함수의 사용 예제입니다.
| 0 | 기본값 (mon dd yyyy hh/PM) |
Apr 7 2024 12:34PM | SELECT CONVERT(VARCHAR, GETDATE(), 0); |
| 1 | MM/DD/YY | 04/07/24 | SELECT CONVERT(VARCHAR, GETDATE(), 1); |
| 2 | YY.MM.DD | 24.04.07 | SELECT CONVERT(VARCHAR, GETDATE(), 2); |
| 3 | DD/MM/YY | 07/04/24 | SELECT CONVERT(VARCHAR, GETDATE(), 3); |
| 4 | DD.MM.YY | 07.04.24 | SELECT CONVERT(VARCHAR, GETDATE(), 4); |
| 5 | DD-MM-YY | 07-04-24 | SELECT CONVERT(VARCHAR, GETDATE(), 5); |
| 10 | MM-DD-YY | 04-07-24 | SELECT CONVERT(VARCHAR, GETDATE(), 10); |
| 11 | YY/MM/DD | 24/04/07 | SELECT CONVERT(VARCHAR, GETDATE(), 11); |
| 12 | YYMMDD | 240407 | SELECT CONVERT(VARCHAR, GETDATE(), 12); |
| 13 | DD MON YY HH:MI:SS(24h) | 07 Apr 24 12:34:56:789 | SELECT CONVERT(VARCHAR, GETDATE(), 13); |
| 14 | HH:MI:SS(24h) | 12:34:56:789 | SELECT CONVERT(VARCHAR, GETDATE(), 14); |
| 20 | YYYY-MM-DD HH:MI(24h) | 2024-04-07 12:34:56 | SELECT CONVERT(VARCHAR, GETDATE(), 20); |
| 21 | YYYY-MM-DD HH:MI.MMM (24h) | 2024-04-07 12:34:56.789 | SELECT CONVERT(VARCHAR, GETDATE(), 21); |
| 23 | YYYY-MM-DD (표준 ISO 형식) | 2024-04-07 | SELECT CONVERT(VARCHAR, GETDATE(), 23); |
| 24 | HH:MI(24h) | 12:34:56 | SELECT CONVERT(VARCHAR, GETDATE(), 24); |
| 25 | YYYY-MM-DD HH:MI.MMM | 2024-04-07 12:34:56.789 | SELECT CONVERT(VARCHAR, GETDATE(), 25); |
| 100 | mon dd yyyy hh/PM | Apr 7 2024 12:34PM | SELECT CONVERT(VARCHAR, GETDATE(), 100); |
| 101 | MM/DD/YYYY | 04/07/2024 | SELECT CONVERT(VARCHAR, GETDATE(), 101); |
| 102 | YYYY.MM.DD | 2024.04.07 | SELECT CONVERT(VARCHAR, GETDATE(), 102); |
| 103 | DD/MM/YYYY | 07/04/2024 | SELECT CONVERT(VARCHAR, GETDATE(), 103); |
| 104 | DD.MM.YYYY | 07.04.2024 | SELECT CONVERT(VARCHAR, GETDATE(), 104); |
| 105 | DD-MM-YYYY | 07-04-2024 | SELECT CONVERT(VARCHAR, GETDATE(), 105); |
| 106 | DD MON YYYY | 07 Apr 2024 | SELECT CONVERT(VARCHAR, GETDATE(), 106); |
| 107 | MON DD, YYYY | Apr 07, 2024 | SELECT CONVERT(VARCHAR, GETDATE(), 107); |
| 108 | HH:MI(24h) | 12:34:56 | SELECT CONVERT(VARCHAR, GETDATE(), 108); |
| 109 | MON DD YYYY HH:MI:SS/PM | Apr 7 2024 12:34:56:789PM | SELECT CONVERT(VARCHAR, GETDATE(), 109); |
| 110 | MM-DD-YYYY | 04-07-2024 | SELECT CONVERT(VARCHAR, GETDATE(), 110); |
| 111 | YYYY/MM/DD | 2024/04/07 | SELECT CONVERT(VARCHAR, GETDATE(), 111); |
| 112 | YYYYMMDD | 20240407 | SELECT CONVERT(VARCHAR, GETDATE(), 112); |
| 113 | DD MON YYYY HH:MI:SS(24h) | 07 Apr 2024 12:34:56:789 | SELECT CONVERT(VARCHAR, GETDATE(), 113); |
| 114 | HH:MI:SS(24h) | 12:34:56:789 | SELECT CONVERT(VARCHAR, GETDATE(), 114); |
| 120 | YYYY-MM-DD HH:MI(24h) | 2024-04-07 12:34:56 | SELECT CONVERT(VARCHAR, GETDATE(), 120); |
| 121 | YYYY-MM-DD HH:MI.MMM (24h) | 2024-04-07 12:34:56.789 | SELECT CONVERT(VARCHAR, GETDATE(), 121); |
| 126 | ISO8601 - YYYY-MM-DDThh:mi.sss |
2024-04-07T12:34:56.789 | SELECT CONVERT(VARCHAR, GETDATE(), 126); |
| 127 | ISO8601 - YYYY-MM-DDThh:mi.sssZ |
2024-04-07T12:34:56.789Z | SELECT CONVERT(VARCHAR, GETDATE(), 127); |
| 130 | 이슬람력 - DD MON YYYY HH:MI:SS/PM |
07 ربيع 1445 12:34:56:789PM | SELECT CONVERT(VARCHAR, GETDATE(), 130); |
| 131 | 이슬람력 - DD/MM/YYYY HH:MI:SS/PM |
07/04/1445 12:34:56:789PM | SELECT CONVERT(VARCHAR, GETDATE(), 131); |
FORMAT 함수 예제
FORMAT 함수는 좀 더 직관적인 형식 문자열을 사용할 수 있습니다.
SELECT FORMAT(GETDATE(), 'yyyy/MM/dd') AS DateFormatted;
SELECT FORMAT(GETDATE(), 'dd-MM-yyyy HH:mm:ss') AS DateFormatted;
SELECT FORMAT(GETDATE(), 'MMMM dd, yyyy') AS LongDateFormatted;
주요 형식 문자열 예시
- yyyy: 연도 (예: 2024)
- MM: 월 (예: 09)
- dd: 일 (예: 07)
- HH: 24시간제 시간
- hh: 12시간제 시간
- mm: 분
- ss: 초
이 두 가지 방법을 사용하여 MSSQL에서 원하는 날짜 형식으로 쉽게 변환할 수 있습니다.