SQL Sever数据类型转换

在同时处理不同数据类型的值时,SQL Server一般会自动进行隐士类型转换。对于数据类型相近的值是有效的,比如int和float,但是对于其它数据类型,例如整型和字符类型,隐士转换就无法实现了,此时必须使用显示转换。为了实现这种显示转换,T-SQL提供了两个显示转换函数,分别是CAST和CONVERT函数。

 CAST(x AS type)和CONVERT(type,x)函数将一个类型的值转换为另一个类型的值。

eg: select CAST('121231' AS DATE),CAST(100 AS CHAR(3)),CONVERT(TIME,'2012-05-01 12:11:10')

 可以看到,CAST('121231' AS DATE)将字符串值转换为了相应的日期值;CAST(100 AS CHAR(3))将整数100转换为带有3个显示宽度的字符串类型,结果为字符串"100";CONVERT(TIME,'2012-05-01 12:11:10')将datetime类型的值,转换为time类型值,结果为"12:11:10.0000000"。

SQL Sever数据类型转换

此外CONVERT函数还有样式参数,特别是处理日期转换过程中会使用到。

语法

CONVERT(data_type(length),data_to_be_converted,style)

data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式。

可以使用的 style 值:


SQL Sever数据类型转换

实例

下面的脚本使用 CONVERT() 函数来显示不同的格式。我们将使用 GETDATE() 函数来获得当前的日期/时间:

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


上一篇:SQL Server学习之路(十一)


下一篇:SQL Server 学习之路(八)