[MS-SQL] 문자를 날짜형식(타입)으로 변경 (CONVERT, TO_DATE)
- 젠트
- 데이터베이스/MSSQL
- 2014. 12. 16.
SQL Server 2008, SQL Server 2012
문자(VARCHAR)를 날짜형식(타입)으로 변경하는 방법을 소개한다.
날짜 형식을 문자를 CONVERT 함수에 넣으면 날짜포맷을 인식하고 날짜(Date)형으로 값을 리턴한다.
날짜만 변환을 하고 싶다면 DATE형을 사용하고 날짜와 시간까지 변환하고 싶다면 DATETIME형을 사용하면 된다.
<날짜형>
DATE : 날짜
DATETIME : 날짜시간
문자타입 -> 날짜타입 변경
CONVERT( [날짜형식], [문자값] )
SELECT CONVERT (DATE, '2014-12-16')
, CONVERT (DATE, '2014/12/16')
, CONVERT (DATE, '20141216')
, CONVERT (DATETIME, '2014-12-16')
, CONVERT (DATETIME, '2014-12-16 15:10:01')
--결과 1 : 2014-12-16
--결과 2 : 2014-12-16
--결과 3 : 2014-12-16
--결과 4 : 2014-12-16 00:00:00.000
--결과 5 : 2014-12-16 15:10:01.000
공유하기
게시글 관리
구독하기젠트의 프로그래밍 세상저작자표시
convert, MS-SQL, MSSQL, to_date, 날짜, 문자, 변경, 타입, 타입변경, 형식
'데이터베이스/MSSQL' 관련 글
더 보기
[MSSQL] PIVOT 함수, 행을 열로 바꾸기 (크로스탭, 동적컬럼)
- 2020.09.03
더 읽기
[MSSQL] STRING_SPLIT 함수, 구분자로 자르기 (행으로 분리)
- 2020.09.02
더 읽기
[MS-SQL] 문자를 숫자형식(타입)으로 변경 (CONVERT, TO_NUMBER)
- 2014.12.16
더 읽기
[MS-SQL] 날짜 형식(포맷) 변경 방법 (CONVERT, TO_CHAR)
- 2014.12.12
더 읽기
댓글(0)
비밀 글
등록
ORDER BY 구문에서 NAME, MAIL로 정렬할 시 문자열을 날짜 및/또는 시간으로 변환하지 못했습니다.' 라는 오류가 발생하는 것을 발견하였다.
해결 방법은 이 블로그를 보고 해결.
//m.blog.naver.com/PostView.nhn?blogId=dlzmstks&logNo=220084395497&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F
SELECT ROW_NUMBER() OVER (
ORDER BY
(CASE @DIRECTION WHEN 'DESC' THEN (
CASE @SORT
WHEN 'NAME' THEN [NAME]
WHEN 'MAIL' THEN MAIL
WHEN 'COMPANY_NAME' THEN COMPANY_NAME
WHEN 'LAST_MODIFY_PERSON' THEN LAST_MODIFY_PERSON
WHEN 'LAST_MODIFY_DATE' THEN LAST_MODIFY_DATE
END)
END)
DESC
원래는 이러한 구문을 사용하여 정렬을 시도하였으나 저 LAST_MODIFY_DATE 데이터형이 DATETIME이기에 나는 오류였다.
그리하여
ORDER BY
(CASE @DIRECTION WHEN 'DESC' THEN (
CASE @SORT
WHEN 'NAME' THEN [NAME]
WHEN 'MAIL' THEN MAIL
WHEN 'COMPANY_NAME' THEN COMPANY_NAME
WHEN 'LAST_MODIFY_PERSON' THEN LAST_MODIFY_PERSON
END)
END)
DESC, (CASE @DIRECTION WHEN 'DESC' THEN (
CASE @SORT
WHEN N'' THEN REGIST_DATE
WHEN 'LAST_MODIFY_DATE' THEN LAST_MODIFY_DATE
END)
END) DESC,
이런 식으로 구문을 나눠 수정하여 해결하였다.
공유하기
게시글 관리
구독하기Speak up!!저작자표시