SQL Server DateTime to and fro Varchar Conversion
I figured out solutions of another iritating problems anyone may fall behind and hence should know by reference:
General Syntax for convert function
convert(target_type, expression, style_code)
Now for convert(varchar, exp, code). As code is a number one may find himself dificult to remember the scode to real style mapping.
Here code mapping with meaning is:
The list of styles that can be used are:
Style ID | Style Type |
0 or 100 | mon dd yyyy hh:miAM (or PM) |
101 | mm/dd/yy |
102 d | yy.mm.d |
103 | dd/mm/yy |
104 | dd.mm.yy |
105 | dd-mm-yy |
106 | dd mon yy |
107 | Mon dd, yy |
108 | hh:mm:ss |
9 or 109 | mon dd yyyy hh:mi:ss:mmmAM (or PM) |
110 | mm-dd-yy |
111 | yy/mm/dd |
112 | yymmdd |
13 or 113 | dd mon yyyy hh:mm:ss:mmm(24h) |
114 | hh:mi:ss:mmm(24h) |
20 or 120 | yyyy-mm-dd hh:mi:ss(24h) |
Convert string(character data) to Datetime
These styles are the format of input to be used when converting character data into datetime and format of output while converting datetime data into characters:
for convert(datetime, exp, code):
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 |
Comments