상황 :
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 |
'Database' 카테고리의 다른 글
잘못된 값 입력으로 인한 오류는 누구의 책임인가? (0) | 2018.06.06 |
---|---|
[MySQL] 특정 row(행)만 백업하기 (0) | 2018.04.27 |
mysql 복구 (0) | 2016.06.14 |
Mysql 에서 HTML 태그 삭제 함수(strip_tags) (0) | 2015.03.12 |
select 시 순번(row number) 지정하기 (0) | 2014.09.19 |