본문 바로가기

MSSQL

날짜표시 형식


CONVERT 사용
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

SQL Server는 쿠웨이트 알고리즘을 사용하여 아랍어 날짜 형식을 지원합니다.

다음 표에서 왼쪽 두 열은 datetime 또는 smalldatetime을 문자 데이터로 변환하기 위한 style 값을 나타냅니다. 
세기가 포함된 네 자리 연도(yyyy)를 구하려면 style 값에 100을 더합니다.


세기 포함 안함 (yy) 세기 포함 (yyyy) 표준 입력/출력**
- 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



* 기본값(style 0 또는 100, 9 또는 109, 13 또는 113, 20 또는 120, 21 또는 121)은 항상 세기(yyyy)를 반환합니다.

** datetime으로 변환할 때의 입력, 문자 데이터로 변환할 때의 출력

*** XML에서 사용하도록 설계되었습니다.
    datetime이나 smalldatetime에서 character 데이터로 변환하는 경우의 출력 형식을 표에서 설명하고 있습니다.
    float, money, smallmoney에서 character 데이터로 변환하는 경우, 출력은 style 2와 같습니다.
    real에서 character 데이터로 변환하는 경우의 출력은 style 1과 같습니다.

중요
기본적으로 SQL Server는 2049년을 기준으로 두 자리 연도를 해석합니다.
즉, 두 자리 연도 49는 2049년을 의미하고 두 자리 연도 50은 1950년을 의미합니다.
OLE 자동화 개체 기반 등 많은 클라이언트 응용 프로그램은 2030년을 기준으로 사용합니다.
SQL Server는 기준 연도를 변경하는 구성 옵션(two digit year cutoff)을 제공하므로 날짜를 일관성 있게 처리할 수 있습니다. 
그러나 가장 안전한 방법은 네 자리 연도를 지정하는 것입니다.

smalldatetime을 문자 데이터로 변환할 때 초나 밀리초가 포함된 스타일은 해당 위치에 0이 표시됩니다. 
datetime 또는 smalldatetime 값을 변환할 경우 적합한 char 또는 varchar 데이터 형식 길이를 사용하여 필요없는
날짜 부분을 잘라낼 수 있습니다.