2013년 11월 8일 금요일

MS-SQL 에서 GETDATE()를 STUFF 할 경우 기본값으로 변경됨

백업 쿼리 만들다 발견한건데..

MS-SQL에서 현재 날짜와 시간을 2013-11-01 00:00:00이란 값으로 STUFF를 사용해 임의로 DAY와 시간을 바꾸고자 SELECT STUFF(GETDATE(),9,11,'01 00:00:00') 할경우 yyyy-MM-01 00:00:00 으로 출력 될 꺼라고 생각하는데.. 01 MM yyyy hh:mm:ss 로 출력되더라..
원인은 모르겠지만 STUFF를 할 경우 GETDATE값이 표준 형식으로 바뀌는 것 같어
이럴 경우에는 STUFF(CONVERT(CHAR(19), CURRENT_TIMESTAMP,20),9,11,'01 00:00:00')
로 쿼리를 날려야 원하는 출력값을 얻을 수 있다..

요약
1. STUFF를 이용하여 날짜 일부를 강제로 바꿀경우
2. GETDATE가 아닌 CURRENT_TIMESTAMP와 CONVERT를 사용하여야 한다.