VBScript의 NOW() 함수를 써서 삽입한 VARCHAR(30)의 테이블을 DATETIME 형식으로 변환하기 위해 다음 방법을 썼다.

1. DateTime 형식의 컬럼을 추가 (RegDate2)
2.
UPDATE tbl_test SET RegDate2 = Substring(RegDate, 1, 10) + Substring(RegDate, 14, 9) + ' ' + CASE Substring(RegDate, 12, 2) WHEN '오전' THEN 'AM' ELSE 'PM' END

변환한 내용을 DB에 삽입한 뒤 바로 컬럼형을 변환해도 인식이 가능하지만 만전을 기하기 위해 새 컬럼을 추가하고 기존 컬럼을 제거하는 방법을 썼다.

그러나 이 경우에도 예외는 존재한다. now() 혹은 date() 함수를 쓸 경우 정각의 경우에는 "2009-05-06 오전 12:00:00"이 다 기록되지 않고 그냥 "2009-05-06"만 표시가 된다. 결국 위의 함수는 실패하게 된다.
방법은 시간에 쓰이는 문자열인 ":"가 없는 경우를 찾아 "오전 00:00:00" 으로 변환하는 것이다.

UPDATE tbl_test
SET RegDate = RegDate + ' 오전 12:00:00'
WHERE RegDate NOT LIKE '%:%'

[http]문자열 데이터를 날짜형 데이터로 변환하기(http://www.sqlworld.pe.kr/mboard/mboard/mboard.asp?board_id=tip&group_name=board&idx_num=17&page=1&category=&search=&b_cat=0&order_c=idx_num&order_da=asc)
[http]문자열을 datetime로 변경해 주는 함수(http://iamgsi.com/472)
Retrieved from https://manalith.org:443/wiki/wiki.php/ASP/DATETIME
last modified 2009-08-16 16:16:32