Published on

5. SQLServer : 数据类型转换

Authors

CAST

语法 : CAST ( expression AS data_type [ ( length ) ] )

USE AdventureWorks2012;  
GO  
SELECT SUBSTRING(Name, 1, 30) AS ProductName, ListPrice  
FROM Production.Product  
WHERE CAST(ListPrice AS int) LIKE '33%';  
GO  

CONVERT

语法 : CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

USE AdventureWorks2012;  
GO  
SELECT SUBSTRING(Name, 1, 30) AS ProductName, ListPrice  
FROM Production.Product  
WHERE CONVERT(int, ListPrice) LIKE '33%';  
不带世纪数位 (yy) (1)带世纪数位 (yyyy)Standard输入/输出 (3)
-0 或 100 (1,2) datetime 和 smalldatetime 的默认值mon dd yyyy hh:miAM(或 PM)
1101美国1 = mm/dd/yy
101 = mm/dd/yyyy
2102ANSI2 = yy.mm.dd
102 = yyyy.mm.dd
3103英国/法国3 = dd/mm/yy
103 = dd/mm/yyyy
4104德语4 = dd.mm.yy
104 = dd.mm.yyyy
5105意大利语5 = dd-mm-yy
105 = dd-mm-yyyy
6106(1)-6 = dd mon yy
106 = dd mon yyyy
7107(1)-7 = Mon dd, yy
107 = Mon dd, yyyy
8 或 24 108-hh:mi:ss
-9 或 109 (1,2) 默认格式 + 毫秒mon dd yyyy hh:mi:ss:mmmAM(或 PM)
10110USA10 = mm-dd-yy
110 = mm-dd-yyyy
11111日本11 = yy/mm/dd
111 = yyyy/mm/dd
12112ISO12 = yymmdd
112 = yyyymmdd
-13 或 113 (1,2) 欧洲默认格式 + 毫秒dd mon yyyy hh:mi:ss:mmm(24 小时制)
14114-hh:mi:ss:mmm(24 小时制)
-20 或 120 (2) ODBC 规范yyyy-mm-dd hh:mi:ss(24 小时制)
-21、25 或 121 (2)time、date、datetime2 和 datetimeoffset 的 ODBC 规范(带毫秒)默认值yyyy-mm-dd hh:mi:ss.mmm(24 小时制)
22 -美国mm/dd/yy hh:mi:ss AM(或 PM)
-23 ISO8601yyyy-mm-dd
-126 (4)ISO8601yyyy-mm-ddThh:mi:ss.mmm(无空格)

注意: 毫秒 (mmm) 值为 0 时,不会显示毫秒小数部分的值。 例如,值“2012-11-07T18:26:20.000”显示为“2012-11-07T18:26:20”。
-127(6, 7)带时区 Z 的 ISO8601。yyyy-MM-ddThh:mm:ss.fffZ(不带空格)

注意: 毫秒 (mmm) 值为 0 时,不会显示毫秒小数值。 例如,值“2012-11-07T18:26:20.000”显示为“2012-11-07T18:26:20”。
-130 (1,2)回历 (5)dd mon yyyy hh:mi:ss:mmmAM

在此样式中,mon 表示完整月份名称的多标记回历 unicode 表示形式。 该值在 SSMS 的默认 US 安装中不会正确呈现。
-131 (2)回历 (5)dd/mm/yyyy hh:mi:ss:mmmAM