Original: Convert date formatting in ms SQL Server
Convert
Explicitly converts a data type expression to another data type. Because some requirements often use different date formats, the following can be found in
Format the date in SQL Server.
SQL Server supports the use of KuwaitAlgorithmData format in the Arabic style.
In the table, the two columns on the left representDatetimeOrSmalldatetimeConversion to character dataStyleValue. ToStyleValue plus 100 to obtain the four-digit year (yyyy) of the century ).
Without Century digital (yy) |
Digital Century (YYYY) |
Standard |
Input/Output ** |
- |
0 or 100 (*) |
Default Value |
Mon dd yyyy hh: miam (or pm) |
1 |
101 |
USA |
Mm/DD/YYYY |
2 |
102 |
ANSI |
YY. Mm. dd |
3 |
103 |
UK/France |
Dd/mm/yy |
4 |
104 |
Germany |
Dd. mm. yy |
5 |
105 |
Italy |
DD-mm-yy |
6 |
106 |
- |
Dd mon YY |
7 |
107 |
- |
Mon DD, YY |
8 |
108 |
- |
Hh: mm: SS |
- |
9 or 109 (*) |
Default Value + millisecond |
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 |
- |
13 or 113 (*) |
European default value + millisecond |
Dd mon yyyy hh: mm: SS: Mmm (24 h) |
14 |
114 |
- |
Hh: MI: SS: Mmm (24 h) |
- |
20 or 120 (*) |
ODBC specifications |
Yyyy-Mm-dd hh:Mm:SS[.Fff] |
- |
21 or 121 (*) |
ODBC specifications (in milliseconds) |
Yyyy-Mm-dd hh:Mm:SS[.Fff] |
- |
126 (***) |
Iso8601 |
Yyyy-mm-dd thh: mm: SS: Mmm (excluding spaces) |
- |
130 * |
Kuwait |
Dd mon yyyy hh: MI: SS: mmmam |
- |
131 * |
Kuwait |
Dd/mm/yy hh: MI: SS: mmmam |
* Default value (Style0 or 100, 9 or 109, 13 or 113, 20 or 120, 21 or 121) always returns the digital Century (yyyy ).
** When convertingDatetimeInput; output when converted to character data.
* ** It is specially used for XML. ForDatetimeOrSmalldatetimeToCharacterData conversion. The output format is shown in the table. ForFloat,MoneyOrSmallmoneyToCharacterData conversion and output are equivalentStyle2. ForRealToCharacterData conversion and output are equivalentStyle1.
ImportantBy default, SQL Server interprets two-digit years based on the end year 2049. That is, the year 49 with two digits is interpreted as 2049, and the year 50 with two digits is interpreted as 1950. Many Client ApplicationsProgram(For example, client applications based on OLE automation objects) Use 2030 as the end year. SQL Server provides a configuration option ("") to change the end year used by SQL Server and process the date in a consistent manner. However, the safest way is to specify a four-digit year.
WhenSmalldatetimeWhen converting to character data, the style that contains seconds or milliseconds will display zero at these locations. WhenDatetimeOrSmalldatetimeYou can use the appropriateCharOrVarcharThe length of the Data Type to truncate the date part that is not required.
The following table showsFloatOrRealWhen converting to character dataStyleValue.
Value |
Output |
0(Default) |
The maximum value is 6 digits. Use scientific notation as needed. |
1 |
Always 8 bits. Always use scientific notation. |
2 |
Always a 16-bit value. Always use scientific notation. |
In the following table, the left column indicatesMoneyOrSmallmoneyWhen converting to character dataStyleValue.
Value |
Output |
0(Default) |
Each three digits on the left of the decimal point are not separated by commas. The two digits on the right of the decimal point, for example, 4235.98. |
1 |
Each three digits on the left of the decimal point are separated by commas. The two digits on the right of the decimal point, for example, 3,510.92. |
2 |
Each three digits on the left of the decimal point are not separated by commas. The four digits on the right of the decimal point, for example, 4235.9819. |
Use convert:
Convert (data_type [(length)], expression [, style])
Select convert (varchar, getdate (), 120)
11:06:08
Select Replace (replace (convert (varchar, getdate (), 120 ),\'-\',\'\'),\'\', \'\'),\':\',\'\')
20040912110608
Select convert (varchar (12), getdate (), 111)
2004/09/12
Select convert (varchar (12), getdate (), 112)
20040912
Select convert (varchar (12), getdate (), 102)
2004.09.12
Select convert (varchar (12), getdate (), 101)
09/12/2004
Select convert (varchar (12), getdate (), 103)
12/09/2004
Select convert (varchar (12), getdate (), 104)
12.09.2004
Select convert (varchar (12), getdate (), 105)
12-09-2004
Select convert (varchar (12), getdate (), 106)
12 09 2004
Select convert (varchar (12), getdate (), 107)
09 12,200 4
Select convert (varchar (12), getdate (), 108)
11:06:08
Select convert (varchar (12), getdate (), 109)
09 12, 2004 1
Select convert (varchar (12), getdate (), 110)
09-12-2004
Select convert (varchar (12), getdate (), 113)
12 09 2004 1
Select convert (varchar (12), getdate (), 114)
11:06:08. 177