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