程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL 中使用 CONVERT轉日期格式

SQL 中使用 CONVERT轉日期格式

編輯:關於SqlServer


  CONVERT

  將某種數據類型的表達式顯式轉換為另一種數據類型。由於某些需求經常用到取日期格式的不同 .現以下可在
SQL Server中 將日期格式化 .

  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*   科威特   dd mon yyyy hh:mi:ss:mmmAM
  -   131*   科威特   dd/mm/yy hh:mi:ss:mmmAM


  默認值( style 0 或 100、 9 或 109、 13 或 113、 20 或 120、 21 或 121)始終返回世紀數位 (yyyy)。

  當轉換為 datetime 時輸入;當轉換為字符數據時輸出。

  專門用於 XML。對於從 datetime或 smalldatetime 到 character 數據的轉換,輸出格式如表中所示。對於從 float、 money或 smallmoney 到character 數據的轉換,輸出等同於 style 2。對於從 real 到 character 數據的轉換,輸出等同於 style 1。

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

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

  下表顯示了從 float 或 real 轉換為字符數據時的 style 值。

  值   輸出
  0(默認值)   最大為 6 位數。根據需要使用科學記數法。
  1   始終為 8 位值。始終使用科學記數法。
  2   始終為 16 位值。始終使用科學記數法。


  在下表中,左列表示從 money 或 smallmoney 轉換為字符數據時的 style 值。

  值   輸出
  0(默認值)   小數點左側每三位數字之間不以逗號分隔,小數點右側取兩位數,例如 4235.98。
  1   小數點左側每三位數字之間以逗號分隔,小數點右側取兩位數,例如 3,510.92。
  2   小數點左側每三位數字之間不以逗號分隔,小數點右側取四位數,例如 4235.9819。 


  使用 CONVERT:

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

  select CONVERT(varchar, getdate(), 120 )
2004-09-12 11:06:08

  select replace(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, 2004

  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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved