MSSQL

MSSQL - CONVERT,FORMAT 함수 사용 방법 (데이터 형변환)

깐까망 2024. 3. 28. 18:33
728x90
반응형
SMALL

▶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

 

MSSQL 날짜 변환 (DATETIME CONVERT)

 - 기준날짜     2000년 01월 02일 13시 14분 15.678초 기준 날짜 형변환   &nbs...

blog.naver.com

▶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] 날짜 Date Format 지정/변환(FORMAT, CONVERT)

1. FORMAT FORMAT(value, format [, culture]) FORMAT(변환할 타입, 포맷) DECLARE @DATETEST1 NVARCHAR(30) DECLARE @DATETEST2 NVARCHAR(30) -- 보통 DATETIME을 쓸 때 출력되는 양식 SET @DATETEST1 = FORMAT(GETDATE(), 'yyyy-MM-dd hh:mm:ss.fff') --

jooy-p.tistory.com

 

728x90
반응형
LIST