-
0 或 100 (1,2)
默 认
mon dd yyyy hh:miAM(或 PM)
1
101
美 国
mm/dd/yyyy
2
102
ANSI
yy.mm.dd
3
103
英 国/法国
dd/mm/yyyy
4
104
德 国
dd.mm.yy
5
105
意 大利
dd-mm-yy
6
106(1)
-
dd mon yy
7
107(1)
-
mon dd, yy
8
108
-
hh:mi:ss
-
9 或 109 (1,2)
默 认设置 + 毫秒
mon dd yyyy hh:mi:ss:mmmAM(或 PM)
10
110
美 国
mm-dd-yy
11
111
日 本
yy/mm/dd
12
112
ISO
yymmdd
yyyymmdd
-
13 或 113 (1,2)
欧 洲默认设置 + 毫秒
dd mon yyyy hh:mi:ss:mmm(24h)
14
114
-
hh:mi:ss:mmm(24h)
-
20 或 120 (2)
ODBC 规范
yyyy-mm-dd hh:mi:ss(24h)
-
21 或 121 (2)
ODBC 规范(带毫秒)
yyyy-mm-dd hh:mi:ss.mmm(24h)
-
126 (4)
ISO8601
yyyy- mm-ddThh:mi:ss.mmm(无空格)
-
127(6, 7)
带时区 Z 的 ISO8601。
yyyy-mm-ddThh:mi:ss.mmmZ
(无 空格)
-
130 (1,2)
回历 (5)
dd mon yyyy hh:mi:ss:mmmAM
-
131 (2)
回历 (5)
dd/mm/yy hh:mi:ss:mmmAM
-- 语句及查询结果: 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
对上面进行动态生成字符串:
declare @sql1 nvarchar ( 200 ), @sql2 nvarchar ( 200 ) declare @count nvarchar ( 100 ); set @sql1 = ' SELECT CONVERT(varchar(100), GETDATE(), 0) ' set @sql2 = ' SELECT @count = CONVERT(varchar(100), GETDATE(), 0) ' exec sp_executesql @sql2 ,N ' @count nvarchar(50) out ' , @count out print @sql1 + ' : ' + @count-- SQL Server 仅保证往返转换(即从原始数据类型进行转换后又返回原始数据类型的转换)在各版本间产生相同值。 DECLARE @myval decimal ( 5 , 2 ) SET @myval = 193.57 SELECT CAST ( CAST ( @myval AS varbinary ( 20 )) AS decimal ( 10 , 5 )) -- Or, using CONVERT SELECT CONVERT ( decimal ( 10 , 5 ), CONVERT ( varbinary ( 20 ), @myval )) -- 输出193.57000 -- 输出193.57000
-- bigint数据类型的字段截取(其它类型也一样) select substring ( CONVERT ( varchar ( 15 ),字段名), 11 , 9 ) from 表名 select substring ( cast (字段名 as varchar ( 50 ), 6 , 9 )) from 表名