[MSSQL] VARCHAR타입 컬럼에 DATE형식(20170921142101) 으로 들어가있을경우 비교방법 0 6 1,867

by 끙차끙차 [SQLServer] VARCHAR DATE [2017.09.13 10:46:10]


핵심질문 : GETDATE()값을 -> YYYYMMDDHHMMss형식으로 변경을 어떻게 할수 없을까요?

VARCHAR타입 컬럼에 '20170921142101' 이런식으로 값이 들어가있습니다.

그런데 해당 컬럼에 현재시간 -1분 한 시간을 조건으로 주고싶은데

해당 컬럼이 VARCHAR다보니 해당 컬럼을 가공할순없고 우측 조건에 가공을하고싶은데

MSSQL CONVERT에는 YYYYMMDDHHMMSS방식으로 해주는건 없더군요

CONVERT(VARCHAR, DATEADD(minute, -1, GETDATE()), 20) 이걸사용해서 

TRIM을해야할지 고민중입니다..

 

MSSQL 에서는 SELECT * FROM '1000' > '999' 이런조건이 검색이 되는걸 확인이 되서

해당방식으로 그냥 스트링끼리 비교하려고하는데요 

그럴려면 현재날짜에서 -1분 한 시간에서 스트링형식인 YYYYMMDDHHMMss형식으로 변경을 해주려고하는데

GETDATE()값을 -> YYYYMMDDHHMMss로 변경을 어떻게 할수 없을까요?

 

 

 

 

 

 

 

 

 

 

 

by 마농 [2017.09.13 11:08:32]
SELECT REPLACE(REPLACE(REPLACE(
       CONVERT(VARCHAR, DATEADD(minute, -1, getdate()), 20)
       , '-', ''), ':', ''), ' ', '') x
;

 


by 우리집아찌 [2017.09.13 11:10:40]
SELECT FORMAT(GETDATE() , 'yyyyMMddhhmmss')

 


by 마농 [2017.09.13 11:14:17]

오오오대박~
convert 쓰면서 항상 불편했는데... 숫자 외우기도 힘들고.
오라클의 to_char 함수 같은 거 없나 했는데.. 있었네요.


by 우리집아찌 [2017.09.13 11:24:34]

요즘 MS-SQL 프로젝트 중이라서요 ^^*


by 끙차끙차 [2017.09.13 11:14:17]

 감사합니다! 

아쉽게도 MSSQL 2012부터 FORMAT함수를 지원하는데 제가쓰고있는건 2008이어서 마농님 방식을 써야겟네요..

ㅠㅠ 우리집아찌님 답변보고 오오오대박! 이라고햇는데 지원이안되네요 ㅠㅠ

 

 


by 우리집아찌 [2017.09.13 11:24:46]

아쉽네요....

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입