sql server使用convert來取得datetime日期資料,以下執行個體包含各種日期格式的轉換
語句及查詢結果:
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
目標系統所提供的資料類型,包括 bigint 和 sql_variant。不能使用使用者定義的資料類型。
length
nchar、nvarchar、char、varchar、binary 或 varbinary 資料類型的選擇性參數。
style
日期格式樣式,藉以將 datetime 或 smalldatetime
資料轉換為字元資料(nchar、nvarchar、char、varchar、nchar 或 nvarchar 資料類型);或者字串格式樣式,藉以將
float、real、money 或 smallmoney 資料轉換為字元資料(nchar、nvarchar、char、varchar、nchar 或
nvarchar 資料類型)。
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或
smalldatetime 到 character 資料的轉換,輸出格式如表中所示。對於從 float、money 或 smallmoney 到
character 資料的轉換,輸出等同於 style 2。對於從 real 到 character 資料的轉換,輸出等同於 style
1。
****Hijri 是具有幾種變化形式的日曆系統,Microsoft SQL Server 2000 使用其中的科威特演算法。
重要 預設情況下,SQL Server 根據截止年份 2049 解釋兩位元字的年份。即,兩位元字的年份 49 被解釋為 2049,而兩位元字的年份 50
被解釋為 1950。許多用戶端應用程式(例如那些基於 OLE Automation 物件的用戶端應用程式)都使用 2030 作為截止年份。SQL Server
提供一個配置選項("兩位元字的截止年份"),藉以更改 SQL Server 所使用的截止年份並對日期進行一致性處理。然而最安全的辦法是指定四位元字年份。
當從 smalldatetime 轉換為字元資料時,包含秒或毫秒的樣式將在這些位置上顯示零。當從 datetime 或 smalldatetime
值進行轉換時,可以通過使用適當的 char 或 varchar 資料類型長度來截斷不需要的日期部分