MS-SQL 은 날짜/시간 데이터 저장을 위해 다음의 6가지 타입을 지원합니다.
데이터 형식 |
형식 |
time |
hh:mm:ss[.nnnnnn] |
date |
YYYY-MM-DD |
smalldatetime |
YYYY-MM-DD hh:mm:ss |
datetime |
YYYY-MM-DD hh:mm:ss[.nnn] |
datetime2 |
YYYY-MM-DD hh:mm:ss[.nnnnnn] |
datetimeoffset |
YYYY-MM-DD hh:mm:ss[.nnnnnn] [+|-]hh:mm |
각 데이터 타입별 범위와 정확도 저장공간 크기등은 아래 url에서 '날짜 및 시간 데이터 형식' 을 참고해주세요.
이 중에서 datetime2 컬럼에 데이터를 적재한 뒤, CONVERT 함수를 사용하여 원하는 포맷에 맞게 출력해보겠습니다.
CONVERT함수는 ( 타입, 데이터, 날짜출력포맷 ) 의 매개변수를 지닙니다.
날짜출력포맷은 숫자로 되어있으며, 각 숫자별로 나오는 포맷이 달라집니다.
모든 숫자에 대해서는 포스팅 하지 않았으니, 더 자세히 알고싶으신 분들은 아래 url에서 '날짜 및 시간 스타일'을 참고해 주세요.
저는 ISO, ODBC 표준에 대해서 포스팅을 진행하였습니다.
숫자 (두 자리 연도) |
숫자 (네 자리 연도) |
표준 |
출력 |
12 |
112 |
ISO |
12 = yymmdd 112 = yyyymmdd |
|
20, 120 (같은의미) |
ODBC |
yyyy-mm-dd hh:mi:ss (24h) |
21, 121 (같은의미) | ODBC | yyyy-mm-dd hh:mi:ss.mmm (24h) |
테이블을 생성 및 데이터를 적재합니다.
CREATE TABLE dt2 (c1 date, c2 datetime2) INSERT INTO dt2 VALUES ('2019-02-14', '2019-02-14 16:42:32.128402') |
CONVERT 함수를 사용하여 데이터를 출력합니다.
SELECT CONVERT(VARCHAR(6), C1, 12) AS C1_12, CONVERT(VARCHAR(8), C1, 112) AS C1_112, CONVERT(VARCHAR(19), C1, 120) AS C1_120, CONVERT(VARCHAR(8), C2, 112) AS C2_112, CONVERT(VARCHAR(19), C2, 120) AS C2_112 FROM dt2 C1_12 C1_112 C1_120 C2_112 C2_112 190214 20190214 2019-02-14 20190214 2019-02-14 16:42:32 |
이번에는 CONVERT함수의 첫번째 매개변수의 저장공간의 값을 다르게 테스트 해보겠습니다.
첫 번째 타입의 크기가 출력되어야 하는 포맷길이보다 짧은 경우 데이터가 짤리는 것을 확인할 수 있습니다.
SELECT CONVERT(VARCHAR(10), C2, 120) AS C2_10_120, CONVERT(VARCHAR(15), C2, 120) AS C2_15_120, CONVERT(VARCHAR(19), C2, 120) AS C2_19_120, CONVERT(VARCHAR(25), C2, 120) AS C2_25_120 FROM dt2 C2_10_120 C2_15_120 C2_19_120 C2_25_120 2019-02-14 2019-02-14 16:4 2019-02-14 16:42:32 2019-02-14 16:42:32 |
추가로 GETDATE() 함수는 현재 시간을 밀리세크까지 반환합니다.
위의 CONVERT함수에서 C1 자리 대신 GETDATE()를 작성하여 테스트를 진행 할 수도 있습니다.
SELECT GETDATE() AS GETDATE GETDATE 2019-02-14 16:50:18.477 |
'SQL Server > SQL Server 기타' 카테고리의 다른 글
[MsSQL] Data Migration Assistant(DMA) 사용하여 SQL Server 마이그레이션 진행하기 (0) | 2019.03.07 |
---|---|
[MsSQL] 로그인과 사용자 차이점 알아보기 login user 차이점 알아보기 (0) | 2019.03.04 |
[MsSQL] SSIS를 사용하여 테이블에 데이터를 적재/추출하기 (0) | 2019.02.13 |
[MsSQL] 인터넷이 되지 않는 환경에서 SSDT 설치하기 (0) | 2019.02.12 |
[MsSQL] DBCC문 알아보기 (0) | 2019.02.08 |