본문 바로가기

Database/MSSQL

SQL Server DateTime Formatting

SQL Server DateTime Formatting

Usually the formatting of a DateTime value into a more readable date and time is dealt with by the client application. However, there are some situations were it is useful to convert a DateTime into a formatted character string within a SQL statement.

Converting a DateTime to a VarChar

The Transact-SQL (T-SQL) Convert command can be used to convert data between different types. When converting a DATETIME value to a VarChar string value a style code may be applied. The following code uses style code 2 to indicate that an ANSI standard date (yy.mm.dd) should be used to represent the date as a string.

SELECT convert(VARCHAR, getdate(), 2)

Converting a VarChar to a DateTime

The date style code can be equally important when converting a VarChar to a DateTime. The following sample is using ANSI date format so 09.08.29 represents 29 August 2009. Without the style specified, the resultant DateTime could be converted as 9 August 2029 or 8 September 2029.

SELECT convert(DATETIME, '09.08.29', 2)

DateTime Style Codes

The table below describes the most popular style codes that are available for use when converting between a DateTime and a character representation. Each example uses today's date, 8 September 2007.

Style CodeStyleFormatExample
0 or 100 Default. Equivalent to not specifying a style code. mon dd yyyy hh:mmAM Sep 8 2007 9:00PM
1 USA date. mm/dd/yy 09/08/07
2 ANSI date. yy.mm.dd 07.09.08
3 UK / French date. dd/mm/yy 08/09/07
4 German date. dd.mm.yy 08.09.07
5 Italian date. dd-mm-yy 08-09-07
6 Abbreviated month. dd mmm yy 08 Sep 07
7 Abbreviated month. mmm dd, yy Sep 08, 07
8 or 108 24 hour time. HH:mm:ss 21:00:00
9 or 109 Default formatting with seconds and milliseconds appended. mon dd yyyy hh:mm:ss:fffAM Sep 8 2007 9:00:00:000PM
10 USA date with hyphen separators. mm-dd-yy 09-08-07
11 Japanese date. yy/mm/dd 07/09/08
12 ISO date. yymmdd 070908
13 or 113 European default with seconds and milliseconds. dd mon yyyy HH:mm:ss:fff 08 Sep 2007 21:00:00:000
14 or 114 24 hour time with milliseconds. HH:mm:ss:fff 21:00:00:000
20 or 120 ODBC canonical date and time. yyyy-mm-dd HH:mm:ss 2007-09-08 21:00:00
21 or 121 ODBC canonical date and time with milliseconds. yyyy-mm-dd HH:mm:ss.fff 2007-09-08 21:00:00.000
101 USA date with century. mm/dd/yyyy 09/08/2007
102 ANSI date with century. yyyy.mm.dd 2007/09/08
103 UK / French date with century. dd/mm/yyyy 08/09/2007
104 German date with century. dd.mm.yyyy 08.09.2007
105 Italian date with century. dd-mm-yyyy 08-09-2007
106 Abbreviated month with century. dd mmm yyyy 08 Sep 2007
107 Abbreviated month with century. mmm dd, yyyy Sep 08, 2007
110 USA date with hyphen separators and century. mm-dd-yyyy 09-08-2007
111 Japanese date with century. yyyy/mm/dd 2007/09/08
112 ISO date with century. yymmdd 20070908
126 ISO8601, for use in XML. yyy-mm-ddThh:mm:ss 2007-09-
08T21:00:00
국내에서 가장 흔하게 사용하는 yyyy-mm-dd 포맷으로 변경하려면 아래의 형태로 가공합니다.

SELECT CONVERT(VARCHAR(10), GETDATE(), 120) AS [yyyy-mm-dd]

출처:  http://www.blackwasp.co.uk/SQLDateTimeFormats.aspx 

'Database > MSSQL' 카테고리의 다른 글

CTE  (0) 2015.02.04
Encrypt specific Table.column  (0) 2014.12.05
TDE (Transparent Data Encryption)  (0) 2014.12.05
Unique index setting  (0) 2014.07.22
How to find DB Size  (0) 2011.11.23