SQL SERVER DATETIME FORMAT

前端 未结 6 1947
忘了有多久
忘了有多久 2020-12-05 15:52

Studying SQL Server there is something I am not sure of:

A datetime field with the value: 2012-02-26 09:34:00.000

If I select out o

6条回答
  •  -上瘾入骨i
    2020-12-05 16:16

    Compatibility Supports Says that Under compatibility level 110, the default style for CAST and CONVERT operations on time and datetime2 data types is always 121. If your query relies on the old behavior, use a compatibility level less than 110, or explicitly specify the 0 style in the affected query.

    That means by default datetime2 is CAST as varchar to 121 format. For ex; col1 and col2 formats (below) are same (other than the 0s at the end)

    SELECT CONVERT(varchar, GETDATE(), 121) col1,
           CAST(convert(datetime2,GETDATE()) as varchar) col2,
           CAST(GETDATE() as varchar) col3
    

    SQL FIDDLE DEMO

    --Results
    COL1                    | COL2                          | COL3
    2013-02-08 09:53:56.223 | 2013-02-08 09:53:56.2230000   | Feb 8 2013 9:53AM
    

    FYI, if you use CONVERT instead of CAST you can use a third parameter to specify certain formats as listed here on MSDN

提交回复
热议问题