본문 바로가기

IT 이야기/DB, SQL

MSSQL 날짜 형식 변환

2012년 4월5일 포스팅

=====================

하아.. 몇년만에 쓰나..-0-;

 

한동안 mysql 쓰다가 sqlserver2005 를 쓰니까 또 헷갈리고 다른 점들 덕에 버벅 거린다..

 

이번껀은 날짜 형식.!!

 

mysql 에서는 단순히 스트링 값으로 형식만 맞으면 알아서 비교해서 연산해 주었는데

 

mssql 에서는 쿼리시에 변환을 해줘야 정상작동을 한다.

 

뭔말인고 하니..

mysql 에서는 ( 'yyyy-MM-dd HH:mm:ss'  =  today() )

같은 형식으로 쿼리시에 비교 해주면

되었으나

 

mssql 에서는

( 'yyyy-MM-dd HH:mm:ss' = convert(varchar(25), getdate(), 20) )

이런 형식으로 해 주어야 한다는 것..

 

날짜 형식의 비교가 아닌 문자열 형식의 비교시에 말이다..

 

그래서 참.. 귀찮았다.

 

내가 주로 사용 하는 형식은 'yyyy-MM-dd HH:mm:ss'  요런 형식이므로 끝에 20 이 붙는다.

또 다른 형식일때는 다른 값으로 변환 해줘야 함.

그래서 생각난김에 여기에 정리.

 

-    0 또는 100 (*) 기본값 mon dd yyyy hh:miAM(또는 PM)
1    101 USA mm/dd/yy
2    102 ANSI yy.mm.dd
3    103 영국/프랑스 dd/mm/yy
4    104 독일 dd.mm.yy
5    105 이탈리아 dd-mm-yy
6    106 - dd mon yy
7    107 - Mon dd, yy
8      108 - hh:mm:ss
-    9 또는 109 (*) 기본값 + 밀리초 mon dd yyyy hh:mi:ss:mmmAM(또는 PM)
10  110 USA mm-dd-yy
11  111 일본 yy/mm/dd
12  112 ISO yymmdd
-   13 또는 113 (*) 유럽 기본값 + 밀리초 dd mon yyyy hh:mm:ss:mmm(24h)
14  114 - hh:mi:ss:mmm(24h)
-    20 또는 120 (*) ODBC 표준 yyyy-mm-dd hh:mi:ss(24h)
-    21 또는 121 (*) ODBC 표준(밀리초) yyyy-mm-dd hh:mi:ss.mmm(24h)
-    126(***) ISO8601 yyyy-mm-dd Thh:mm:ss.mmm(스페이스 없음)
-    130* 회교식**** dd mon yyyy hh:mi:ss:mmmAM
-    131* 회교식**** dd/mm/yy hh:mi:ss:mmmAM