SQL SERVER的cast和convert
相同点:都可以进行数据类型转换
不同点,语法不同
cast
cast(expresion as data_type)
convert
convert(data_type[(length)], expression[,sty
操作中对数据进行类型转换 cast 和 convert 相同点:都可以进行数据类型转换 不同点,语法不同 cast cast(expresion as data_type) convert convert(data_type[(length)], expression[,style]) (1)expression:是任何有效的表达式。 (2)data_type:目标系统所提供的数据类型,包括 bigint 和 sql_variant。不能使用用户定义的数据类型。 (3)length:nchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。 (4)style:日期格式样式,借以将 datetime 或 smalldatetime 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型);或者字符串格式样式,借以将 float、real、money 或 smallmoney 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)。
CAST和CONVERT用在时间转换上的区别 cast 和 convert 都是用来转化数据类型的,功能上是差不多的。 在时间转化中一般用到 convert,因为它比 cast 多加了一个 style,可以转化成不同时间的。打个简单的例子吧,比方说查找一下当前的时间,select getdate(),而我们只需要到年月日而已,这时我们就可以把它转化为 select convert(varchar(100),GETDATE(),111) 转化成我们需要的Mssq类型转换函数,而 select CAST(GETDATE() as varchar(30)) cast 就没办法或者是转化过程比较繁琐。 1-1.SELECT CONVERT(decimal(5,2), ‘123.477’) ==>123.48 1-2.SELECT CONVERT(decimal, ‘123.477’) ==>123 提问:SELECT CONVERT(int, ‘123.477’) 和 SELECT CAST(‘123.477’ AS int) 的写法对不? 回答:不对,会报错。因为CAST()函数和CONVERT()函数都不能执行四舍五入或截断操作,所以要把int换成decimal,就像1-2 和 2-2 一样。 SELECT CAST(123.477 AS int) 不报错 SELECT CAST(‘123’ AS int) 不报错 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |