▶CONVERT 함수
- MS SQL Server에서 CONVERT 함수는 한 데이터 유형을 다른 데이터 유형으로 변환하는 데 사용됩니다. 날짜 형식을 바꿀 때 형식 코드와 함께 유용하게 사용할 수 있고, 데이터의 형식을 바꾸기 위해서도 사용됩니다.
-- 기본 형식 --
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
data_type : 데이터를 변환하려는 목표 데이터 유형입니다.
length : 목표 데이터 유형의 길이입니다. 일부 데이터 유형에만 사용합니다.
expression : 변환하려는 실제 데이터 또는 필드입니다.
style : 선택적으로 사용합니다. 특히 날짜와 시간 데이터 유형의 변환에서 출력 형식을 결정할 때 사용됩니다.
- 예시 1) int 형식을 nvarchar형식으로 데이터 형변환
SELECT CONVERT(nvarchar, empno) as empno FROM EMP
- 여기서 length와 style은 생략이 가능하다. 그리고 empno는 int형식입니다.
- EMP테이블에 있는 empno의 데이터를 뿌리는데 데이터 형변환을 하였으므로 nvarchar형식의 문자열로 출력이 됩니다.
- 예시 2) 날짜/시간 형식 변경
. 날짜/시간의 형식이 다양하게 출력을 할 수 있습니다.
. GETDATE()형식은 현재 날짜를 넣어 주므로 yyyy-mm-dd형식으로 출력이 됩니다.
-- 예시 --
SELECT CONVERT(nvarchar, hiredate, (103)) as datetime1 FROM EMP
. 예시에서 hiredate은 GETDATE()를 가지고 오는 컬럼명이며 103은 DATETYPE입니다. (dd/mm/yyyy) 형식으로 출력이 됩니다.
. 아래에 날짜 출력 형식표를 보고 자기가 원하는 출력방법으로 사용을 하면 됩니다.
▷날짜 출력 형식표
- 기준날짜
2000년 01월 02일 13시 14분 15.678초 기준 날짜 형변환 |
- MSSQL 날짜 변환표 (기준날짜를 대상으로 CONVERT 실행하여 날짜 형변환)
번호 | 쿼리 | 결과 | 코드 |
0 | CONVERT(CHAR(19), DATETIME, 0) | 01 02 2000 1:14PM | MM DD YYYY H:MM |
1 | CONVERT(CHAR(10), DATETIME, 1) | 01/02/2000 | MM/DD/YYYY |
2 | CONVERT(CHAR(8), DATETIME, 2) | 00.01.02 | YY.MM.DD |
3 | CONVERT(CHAR(8), DATETIME, 3) | 02/01/00 | DD/MM/YY |
4 | CONVERT(CHAR(8), DATETIME, 4) | 02.01.00 | DD.MM.YY |
5 | CONVERT(CHAR(8), DATETIME, 5) | 02-01-00 | DD-MM-YY |
6 | CONVERT(CHAR(8), DATETIME, 6) | 02 01 00 | DD MM YY |
7 | CONVERT(CHAR(9), DATETIME, 7) | 01 02, 00 | MM DD, YY |
8 | CONVERT(CHAR(8), DATETIME, 8) | 13:14:15 | HH:MM:SS |
9 | CONVERT(CHAR(26), DATETIME, 9) | 01 02 2000 1:14:15.678PM | NN DD YYYY H:MM:SS.MS |
10 | CONVERT(CHAR(8), DATETIME, 10) | 01-02-00 | MM-DD-YY |
11 | CONVERT(CHAR(8), DATETIME, 11) | 02/01/00 | DD/MM/YY |
12 | CONVERT(CHAR(6), DATETIME, 12) | 000102 | YYMMDD |
13 | CONVERT(CHAR(24), DATETIME, 13) | 02 01 2000 13:14:15.678 | DD MM YYYY HH:MM:SS.MS |
14 | CONVERT(CHAR(12), DATETIME, 14) | 13:14:15.678 | HH:MM:SS.MS |
20 | CONVERT(CHAR(19), DATETIME, 20) | 2000-01-02 13:14:15 | YYYY-MM-DD HH:MM:SS |
21 | CONVERT(CHAR(23), DATETIME, 21) | 2000-01-02 13:14:15.678 | YYYY-MM-DD HH:MM:SS.MS |
22 | CONVERT(CHAR(20), DATETIME, 22) | 01/02/00 1:14:15 PM | MM/DD/YY H:M:S |
23 | CONVERT(CHAR(10), DATETIME, 23) | 2000-01-02 | YYYY-MM-DD |
24 | CONVERT(CHAR(8), DATETIME, 24) | 13:14:15 | HH:MM:SS |
25 | CONVERT(CHAR(23), DATETIME, 25) | 2000-01-02 13:14:15.678 | YYYY-MM-DD HH:MM:SS.MS |
100 | CONVERT(CHAR(19), DATETIME, 100) | 01 02 2000 1:02PM | MM DD YYYY H:MM |
101 | CONVERT(CHAR(10), DATETIME, 101) | 01/02/2000 | MM/DD/YYYY |
102 | CONVERT(CHAR(10), DATETIME, 102) | 2000.01.02 | YYYY.MM.DD |
103 | CONVERT(CHAR(10), DATETIME, 103) | 02/01/2000 | DD/MM/YYYY |
104 | CONVERT(CHAR(10), DATETIME, 104) | 02/01/2000 | DD/MM/YYYY |
105 | CONVERT(CHAR(10), DATETIME, 105) | 02-01-2000 | DD-MM-YYYY |
106 | CONVERT(CHAR(11), DATETIME, 106) | 02 01 2000 | DD MM YYYY |
107 | CONVERT(CHAR(12), DATETIME, 107) | 01 02, 2000 | MM DD, YYYY |
108 | CONVERT(CHAR(8), DATETIME, 108) | 13:14:15 | HH:MM:SS |
109 | CONVERT(CHAR(26), DATETIME, 109) | 01 02 2000 1:14:15.678PM | MM DD YYYY H:MM:DD.MS |
110 | CONVERT(CHAR(10), DATETIME, 110) | 01-02-2000 | MM-DD-YYYY |
111 | CONVERT(CHAR(10), DATETIME, 111) | 2000/01/02 | YYYY/MM/DD |
112 | CONVERT(CHAR(8), DATETIME, 112) | 20000102 | YYYYMMDD |
113 | CONVERT(CHAR(24), DATETIME, 113) | 02 01 2000 13:14:15.678 | DD MM YYYY HH:MM:DD.MS |
114 | CONVERT(CHAR(12), DATETIME, 114) | 13:14:15:678 | HH:MM:DD:MS |
120 | CONVERT(CHAR(19), DATETIME, 120) | 2000-01-02 13:14:15 | YYYY-MM-DD HH:MM:SS |
121 | CONVERT(CHAR(23), DATETIME, 121) | 2000-01-02 13:14:15.678 | YYYY-MM-DD HH:MM:SS.MS |
126 | CONVERT(CHAR(23), DATETIME, 126) | 2000-01-02T13:14:15.678 | YYYY-MM-DDT HH:MM:SS.MS |
127 | CONVERT(CHAR(23), DATETIME, 127) | 2000-01-02T13:14:15.678 | YYYY-MM-DDT HH:MM:SS.MS |
131 | CONVERT(CHAR(25), DATETIME, 131) | 1/06/1421 1:13:14:678PM |
[참고사항] 자주 쓰이는 변환표
번호 | 쿼리 | 결과 | 코드 |
21 | CONVERT(CHAR(23), DATETIME, 21) | 2000-01-02 13:14:15.678 | YYYY-MM-DD HH:MM:SS.MS |
23 | CONVERT(CHAR(10), DATETIME, 23) | 2000-01-02 | YYYY-MM-DD |
112 | CONVERT(CHAR(8), DATETIME, 112) | 20000102 | YYYYMMDD |
출처 ) https://blog.naver.com/diceworld/220156570441
▶FORMAT 함수
- FORMAT(value, format [, culture])
- FORMAT(변환할 타입, 포맷)
-- 예시 --
SELECT FORMAT(hiredate, 'yyyy') as datetime1 FROM EMP
- 년도만 나오게 FORMAT 설정을 하여 출력을 하였습니다.
아래의 FORMAT형식을 확인하여 원하는 데이터를 출력을 할 수가 있습니다.
날짜형식 | 표현형식 |
yyyy | 2021 |
yy | 21 |
mm | 09 |
MMMM | 09월 |
M | 9 |
dddd | 월요일 |
ddd | 월 |
DD | 05 |
D | 5 |
HH | 0 |
hh | 12 |
h | 12 |
mm | 01 |
M | 1 |
SS | 02 |
S | 2 |
tt | 오전 |
T | AM |
fff | 333 |
ff | 33 |
F | 3 |
출처) https://jooy-p.tistory.com/3
'MSSQL' 카테고리의 다른 글
MSSQL - LIKE 사용법 및 예제 (2) | 2024.03.30 |
---|---|
MSSQL - 날짜, 시간 차이 일수 계산 (DATEDIFF) (1) | 2024.03.29 |
MSSQL - 문자열 자르기 (LEFT,RIGHT,SUBSTRING) 사용법 & 예제 (0) | 2024.03.27 |
MSSQL - 문자열 치환 (REPLACE,STUFF) 사용법 (0) | 2024.03.26 |
MSSQL - 정렬 (ORDER BY), 그룹(GROUP BY), 그룹 조건(HAVING) (0) | 2024.03.22 |