#4. 数据类型转换函数
convert 在进行日期转换时提供了丰富的样式,
cast 只能进行普通的日期转换
函数名称 参数 示例 描述
convert(数据类型[(长度)],表达式[,样式])
select convert(nvarchar,123) 返回123
select N’年龄:’+convert(nvarchar,23)
返回 年龄:23(注意:如果想要在结果中正确显示中文需要在给定的字符串前面加上 N,加 N 是为了使数据库识别Unicode 字符)
select convert(nvarchar ,getdate())
将一种数据类型的表达式显式转换为另一种数据类型的表达式。长度:如果数据类型允许设置长度,可以设置长度,例如varchar(10)样式:用于将日期类型数据转换为字符数据类型的日期格式的样式。见下表
select convert(nvarchar ,getdate()) 返回 03 22 2018 10:21PM
select convert(nvarchar ,getdate(),101) 返回 03/22/2018
select convert(nvarchar ,getdate(),120) 返回 2018-03-22 12:22:21
Select convert(nvarchar(10) ,getdate(),120)返回 2018-03-22
cast(表达式 as 数据类型[(长度)])
select cast(123 as nvarchar) 返回 123
select N’年龄:’+cast(23 as nvarchar) 返回 年龄:23
将一种数据类型的表达式显式转换为另一种数据类型的表达式。日期类型数据转为字符数据类型的日期格式的部分样式表当两个不同数据类型的表达式用运算符组合后,数据类型优先级规则指定将优先级较低的数据类型优先转换为优先级较高的型。 如果此转换不是所支持的隐式转换,则返回错误。 当两个操作数表达式具有相同的数据类型时,运算的结果便为该数据类型。如果需要把优先级高的数据类型转换优先级低的数据类型时需要使用数据类型转换函数进行显示转换。
---------------- SQL Server CONVERT() 函数
Style ID Style 格式
100 或者 0 mon dd yyyy hh:miAM (或者 PM)
101 mm/dd/yy
102 yy.mm.dd
103 dd/mm/yy
104 dd.mm.yy
105 dd-mm-yy
106 dd mon yy
107 Mon dd, yy
108 hh:mm:ss
109 或者 9 mon dd yyyy hh:mi:ss:mmmAM(或者 PM)
110 mm-dd-yy
111 yy/mm/dd
112 yymmdd
113 或者 13 dd mon yyyy hh:mm:ss:mmm(24h)
114 hh:mi:ss:mmm(24h)
120 或者 20 yyyy-mm-dd hh:mi:ss(24h)
121 或者 21 yyyy-mm-dd hh:mi:ss.mmm(24h)
126 yyyy-mm-ddThh:mm:ss.mmm(没有空格)
130 dd mon yyyy hh:mi:ss:mmmAM
131 dd/mm/yy hh:mi:ss:mmmAM
CONVERT(VARCHAR(19),GETDATE())
CONVERT(VARCHAR(10),GETDATE(),110)
CONVERT(VARCHAR(11),GETDATE(),106)
CONVERT(VARCHAR(24),GETDATE(),113)
Dec 29 2008 11:45 PM
12-29-2008
29 Dec 08
29 Dec 2008 16:25:46.635