Over on Experts Exchange I saw a question that I get all the time, “How do I format this DATETIME like x?” If they’re asking to learn, I point them over to the CAST and CONVERT article on msdn. If you wish to change a Microsoft SQL DATETIME column from the standard format 2008-01-28 12:43:13.210 to any other format you need to use CONVERT. CONVERT will let you choose any option from the following table as your formatting option.
Without century (yy) (1) | With century (yyyy) | Standard | Input/Output (3) |
---|---|---|---|
– | 0 or 100 (1,2) | Default | mon dd yyyy hh:miAM (or PM) |
1 | 101 | U.S. | mm/dd/yyyy |
2 | 102 | ANSI | yy.mm.dd |
3 | 103 | British/French | dd/mm/yyyy |
4 | 104 | German | dd.mm.yy |
5 | 105 | Italian | dd-mm-yy |
6 | 106(1) | – | dd mon yy |
7 | 107(1) | – | Mon dd, yy |
8 | 108 | – | hh:mi:ss |
– | 9 or 109 (1,2) | Default + milliseconds | mon dd yyyy hh:mi:ss:mmmAM (or PM) |
10 | 110 | USA | mm-dd-yy |
11 | 111 | JAPAN | yy/mm/dd |
12 | 112 | ISO | yymmdd
yyyymmdd |
– | 13 or 113 (1,2) | Europe default + milliseconds | dd mon yyyy hh:mi:ss:mmm(24h) |
14 | 114 | – | hh:mi:ss:mmm(24h) |
– | 20 or 120 (2) | ODBC canonical | yyyy-mm-dd hh:mi:ss(24h) |
– | 21 or 121 (2) | ODBC canonical (with milliseconds) | yyyy-mm-dd hh:mi:ss.mmm(24h) |
– | 126 (4) | ISO8601 | yyyy-mm-ddThh:mi:ss.mmm (no spaces) |
– | 127(6, 7) | ISO8601 with time zone Z. | yyyy-mm-ddThh:mi:ss.mmmZ
(no spaces) |
– | 130 (1,2) | Hijri (5) | dd mon yyyy hh:mi:ss:mmmAM |
– | 131 (2) | Hijri (5) | dd/mm/yy hh:mi:ss:mmmAM |
In order to use the formatting, simply use CONVERT(VARCHAR(length), dateColumn, formatOption). I’ve included a few examples below.
declare @ExampleDateTime datetime set @ExampleDateTime = '2008-01-28 12:43:13.210' SELECT CONVERT(varchar(10), @exampleDateTime, 101) AS Result Result ------ 01/28/2008 SELECT CONVERT(varchar(26), @exampleDateTime, 9) AS Result Result -------------------------- Jan 28 2008 12:43:13:210PM SELECT CONVERT(varchar(20), @exampleDateTime) AS Result Result ------------------- Jan 28 2008 12:43PM
While there was quite a few people offering assistance on how to use the CONVERT function I hope you will add a bookmark to the Microsoft Books Online article I’ve referenced. It will save you a ton of time when you have to format your dates a certain way. If you have to write reports, CONVERT will become a common site in your T-SQL code.
If you have any questions about how to accomplish your goals in SQL, please send on your questions. I’m here to help!