泰仔在線

          java學習,心情日記,繽紛時刻
          posts - 100, comments - 34, trackbacks - 0, articles - 0

          MS SQL 中CONVERT轉化函數的用法

          Posted on 2008-03-24 10:47 泰仔在線 閱讀(629) 評論(0)  編輯  收藏 所屬分類: MS SQL 相關

          格式:
          CONVERT(data_type,expression[,style])

          說明:
          此樣式一般在時間類型(datetime,smalldatetime)與字符串類型
          (nchar,nvarchar,char,varchar)
          相互轉換的時候才用到.

          例子:
          SELECT CONVERT(varchar(30),getdate(),101) now

          結果為:
          now
          ---------------------------------------
          |09/15/2001

          ===================================================================

          style數字在轉換時間時的含義如下:

          --------------------------------------------------------------------
          Style(2位表示年份)    |   Style(4位表示年份)    |    輸入輸出格式                                    
          ---------------------------------------------------------------------
          0                                | 100                            |    mon dd yyyy hh:miAM(或PM)              
          ---------------------------------------------------------------------
          1                                |   101    美國                 |    mm/dd/yy                                       
          --------------------------------------------------------------------
          2                                |   102     ANSI                |    yy-mm-dd                                        
          --------------------------------------------------------------------
          3                                |   103     英法                 |    dd/mm/yy                                       
          --------------------------------------------------------------------
          4                                |   104     德國                 |    dd.mm.yy                                        
          --------------------------------------------------------------------
          5                                |   105     意大利              |    dd-mm-yy                                        
          ---------------------------------------------------------------------
          6                                |   106                             |    dd mon yy                                        
          ---------------------------------------------------------------------------
          7                                |   107                             |    mon dd,yy                                        
          ------------------------------------------------------------------------------
          8                                |   108                             |    hh:mm:ss                                         
          -----------------------------------------------------------------------
          9                                |   109                             |    mon dd yyyy hh:mi:ss:mmmmAM(或PM)
          ----------------------------------------------------------------------------
          10                              |   110     美國                  |    mm-dd-yy                                         
          -----------------------------------------------------------------------------
          11                              |   111     日本                  |    yy/mm/dd                                        
          -------------------------------------------------------------------------
          12                              |   112     ISO                   |    yymmdd                                           
          ------------------------------------------------------------------------
          13                              |   113      歐洲默認值      |    dd mon yyyy hh:mi:ss:mmm(24小時制)  
          ------------------------------------------------------------------------
          14                              |   114                             |    hh:mi:ss:mmm(24小時制)                    
          --------------------------------------------------------------------------
          20                              |   120      ODBC 規范      |     yyyy-mm-dd hh:mi:ss(24小時制)         
          -----------------------------------------------------------------------------
          21                              |    121                            |     yyyy-mm-dd hh:mi:ss:mmm(24小時制)
          -----------------------------------------------------------------------

          語句及查詢結果:
          SELECT CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
          SELECT CONVERT(varchar(100), GETDATE(), 1): 05/16/06
          SELECT CONVERT(varchar(100), GETDATE(), 2): 06.05.16
          SELECT CONVERT(varchar(100), GETDATE(), 3): 16/05/06
          SELECT CONVERT(varchar(100), GETDATE(), 4): 16.05.06
          SELECT CONVERT(varchar(100), GETDATE(), 5): 16-05-06
          SELECT CONVERT(varchar(100), GETDATE(), 6): 16 05 06
          SELECT CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
          SELECT CONVERT(varchar(100), GETDATE(), 8): 10:57:46
          SELECT CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
          SELECT CONVERT(varchar(100), GETDATE(), 10): 05-16-06
          SELECT CONVERT(varchar(100), GETDATE(), 11): 06/05/16
          SELECT CONVERT(varchar(100), GETDATE(), 12): 060516
          SELECT CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
          SELECT CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
          SELECT CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
          SELECT CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
          SELECT CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
          SELECT CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
          SELECT CONVERT(varchar(100), GETDATE(), 24): 10:57:47
          SELECT CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
          SELECT CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
          SELECT CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
          SELECT CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
          SELECT CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
          SELECT CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
          SELECT CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
          SELECT CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
          SELECT CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
          SELECT CONVERT(varchar(100), GETDATE(), 108): 10:57:49
          SELECT CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
          SELECT CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
          SELECT CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
          SELECT CONVERT(varchar(100), GETDATE(), 112): 20060516
          SELECT CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
          SELECT CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
          SELECT CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
          SELECT CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
          SELECT CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
          SELECT CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM
          SELECT CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM

          說明:
          使用 CONVERT

          CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

          參數

          expression

          是任何有效的 Microsoft® SQL Server™ 表達式。。

          data_type

          目標系統所提供的數據類型,包括 bigintsql_variant。不能使用用戶定義的數據類型。
          length

          ncharnvarcharcharvarcharbinaryvarbinary 數據類型的可選參數。

          style

          日期格式樣式,借以將 datetime 或 smalldatetime 數據轉換為字符數據(ncharnvarcharcharvarcharncharnvarchar 數據類型);或者字符串格式樣式,借以將 floatrealmoneysmallmoney 數據轉換為字符數據(ncharnvarcharcharvarcharncharnvarchar 數據類型)。

          SQL Server 支持使用科威特算法的阿拉伯樣式中的數據格式。

          在表中,左側的兩列表示將 datetime 或 smalldatetime 轉換為字符數據的 style 值。給 style 值加 100,可獲得包括世紀數位的四位年份 (yyyy)。

          不帶世紀數位 (yy) 帶世紀數位 (yyyy)
          標準

          輸入/輸出**
          - 0 或 100 (*) 默認值 mon dd yyyy hh:miAM(或 PM)
          1 101 美國 mm/dd/yyyy
          2 102 ANSI yy.mm.dd
          3 103 英國/法國 dd/mm/yy
          4 104 德國 dd.mm.yy
          5 105 意大利 dd-mm-yy
          6 106 - dd mon yy
          7 107 - mon dd, yy
          8 108 - hh:mm:ss
          - 9 或 109 (*) 默認值 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM)
          10 110 美國 mm-dd-yy
          11 111 日本 yy/mm/dd
          12 112 ISO yymmdd
          - 13 或 113 (*) 歐洲默認值 + 毫秒 dd mon yyyy hh:mm:ss:mmm(24h)
          14 114 - hh:mi:ss:mmm(24h)
          - 20 或 120 (*) ODBC 規范 yyyy-mm-dd hh:mm:ss[.fff]
          - 21 或 121 (*) ODBC 規范(帶毫秒) yyyy-mm-dd hh:mm:ss[.fff]
          - 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss.mmm(不含空格)
          - 130* Hijri**** dd mon yyyy hh:mi:ss:mmmAM
          - 131* Hijri**** dd/mm/yy hh:mi:ss:mmmAM

          *     默認值(style 0 或 100、9 或 109、13 或 113、20 或 120、21 或 121)始終返回世紀數位 (yyyy)。
          ** 當轉換為 datetime時輸入;當轉換為字符數據時輸出。
          *** 專門用于 XML。對于從 datetime或 smalldatetimecharacter 數據的轉換,輸出格式如表中所示。對于從 floatmoneysmallmoneycharacter 數據的轉換,輸出等同于 style 2。對于從 realcharacter 數據的轉換,輸出等同于 style 1。
          ****Hijri 是具有幾種變化形式的日歷系統,Microsoft® SQL Server™ 2000 使用其中的科威特算法。

          重要   默認情況下,SQL Server 根據截止年份 2049 解釋兩位數字的年份。即,兩位數字的年份 49 被解釋為 2049,而兩位數字的年份 50 被解釋為 1950。許多客戶端應用程序(例如那些基于 OLE 自動化對象的客戶端應用程序)都使用 2030 作為截止年份。SQL Server 提供一個配置選項("兩位數字的截止年份"),借以更改 SQL Server 所使用的截止年份并對日期進行一致性處理。然而最安全的辦法是指定四位數字年份。

           

          當從 smalldatetime 轉換為字符數據時,包含秒或毫秒的樣式將在這些位置上顯示零。當從 datetime 或 smalldatetime 值進行轉換時,可以通過使用適當的 charvarchar 數據類型長度來截斷不需要的日期部分。

          轉自: 時間類型的轉換,SQL中CONVERT轉化函數的用法

          主站蜘蛛池模板: 綦江县| 绥宁县| 龙南县| 常山县| 无棣县| 兴城市| 三台县| 宁武县| 华安县| 荣昌县| 米脂县| 保定市| 平顺县| 阿尔山市| 浏阳市| 东莞市| 什邡市| 吉隆县| 遵义县| 阳西县| 海阳市| 福鼎市| 高邑县| 贵阳市| 南澳县| 玉山县| 阿拉尔市| 乐清市| 洛隆县| 新沂市| 韩城市| 松江区| 永靖县| 黄山市| 龙陵县| 莫力| 博兴县| 青海省| 舒城县| 宣城市| 晋江市|