ioerror

MSSQL의 datetime 자료형을 string 으로 형 변환 하기 본문

카테고리 없음

MSSQL의 datetime 자료형을 string 으로 형 변환 하기...

반응형

상황 :

MSSQL 데이터베이스에서 PHP로 select 쿼리를 날렸는데 다른 놈들은 다 잘 오는데 datetime 이 아이만 팔다리 잘려서 돌아왔다.

SQL : SELECT NO, NAME, REG_DATE FROM TABLE

RETURN : 1, 홍길동, 11

 

해결 : 

이에 불쌍히 여겨 팔다리 붙여 주려고 찾아 본니..."CONVERT"를 이용하면 된다.

DATETIME 자료형은 CONVERT(CHAR(19), REG_DATE, 120)으로 형 변환해야 한다.

SQL : SELECT NO, NAME, CONVERT(CHAR(19), REG_DATE, 120) AS REG_DATE FROM TABLE

RETURN : 1, 홍길동, 2017-01-12 13:12:20

 

배움 : 

CONVERT 에서 숫자 상수의 의미는 아래의 주소를 참고한다.

https://docs.microsoft.com/ko-kr/sql/t-sql/functions/cast-and-convert-transact-sql

 

두 자리 연도 (yy)  네 자리 연도(yyyy) Standard 입/출력
- 0 또는 100(1,2) datetime 및 smalldatetime의 기본값 mon dd yyyy hh:miAM(또는 PM)
1 101 미국 1 = mm/dd/yy
101 = mm/dd/yyyy
2 102 ANSI 2 = yy.mm.dd
102 = yyyy.mm.dd
3 103 영국/프랑스 3 = dd/mm/yy
103 = dd/mm/yyyy
4 104 독일어 4 = dd.mm.yy
104 = dd.mm.yyyy
5 105 이탈리아어 5 = dd-mm-yy
105 = dd-mm-yyyy
6 106(1) - 6 = dd mon yy
106 = dd mon yyyy
7 107(1) - 7 = Mon dd, yy
107 = Mon dd, yyyy
8 108 - hh:mi:ss
- 9 또는 109 기본값 + 밀리초 mon dd yyyy hh:mi:ss:mmmAM(또는 PM)
10 110 USA 10 = mm-dd-yy
110 = mm-dd-yyyy
11 111 일본 11 = yy/mm/dd
111 = yyyy/mm/dd
12 112 ISO 12 = yymmdd
112 = yyyymmdd
- 13 또는 113 유럽 기본값 + 밀리초 dd mon yyyy hh:mi:ss:mmm(24h)
14 114 - hh:mi:ss:mmm(24h)
- 20 또는 120 ODBC 표준 yyyy-mm-dd hh:mi:ss(24h)
- 21 또는 121 time, date, datetime2 및 datetimeoffset의 ODBC 표준(밀리초 포함) 기본값 yyyy-mm-dd hh:mi:ss.mmm(24h)
- 126(4) ISO8601 yyyy-mm-ddThh:mi:ss.mmm(공백 없이)
참고: (mmm) 시간 (밀리초)에 대 한 값이 0 이면 밀리초 값 표시 되지 않습니다. 예를 들어, 값 '2012-11-07T18:26:20.000은 '2012-11-07T18:26:20'으로 표시됩니다.
- 127 ISO8601(Z 표준 시간대) yyyy-mm-ddThh:mi:ss.mmmZ (공백 없이)
참고: (mmm) 시간 (밀리초)에 대 한 값이 0 이면 밀리초 값 표시 되지 않습니다. 예를 들어, 값 '2012-11-07T18:26:20.000은 '2012-11-07T18:26:20'으로 표시됩니다.
- 130(1,2) 회교식 (5) dd mon yyyy hh:mi:ss:mmmAM
이 스타일에서 mon은 전체 월 이름에 대한 다중 토큰 회교식 유니코드 표현을 나타냅니다. 이 값 않습니다에서 올바르게 렌더링 되지 기본 미국 SSMS 설치 합니다.
- 131(2) 회교식 (5) dd/mm/yyyy hh:mi:ss:mmmAM




반응형
Comments