本节主要叙述一下sql中的两个非常重要的方法,Convert和Cast,主要用来将某种数据类型的表达式显式转换为另一种数据类型。CAST 和 CONVERT 提供相似的功能。在字符串拼接和日期转换中我们都会去选择这两个方法,考虑到在程序开发中经常用到,而且convert的样式又比较繁多,所以在此单独列举一下,希望引起大家的重视。
一、方法介绍
1、CONVERT(data_type,expression[,style])
data_type:要转换成的类型,比如nchar,nvarchar,char,varchar
expression:被转换的变量或表达式
style:在日期型数据转换成string时,我们可以通过这个参数来指定样式,具体如下表所示:
2、CAST(expression as data_type)
expression:被转换的变量或表达式
data_type:要转换成的类型
注:CAST方法不能指定样式
二、方法使用
1、连接字符串
select '安全系数:' + cast(9999 as char(4))
安全系数:9999
2、日期类型转换
select CONVERT(varchar, getdate(), 120 )
2004-09-1211:06:08
select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),'',''),':','')
20040912110608
select CONVERT(varchar(12) , getdate(), 111 )
2004/09/12
select CONVERT(varchar(12) , getdate(), 112 )
20040912
select CONVERT(varchar(12) , getdate(), 102 )
2004.09.12
2004-09-1211:06:08
select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),'',''),':','')
20040912110608
select CONVERT(varchar(12) , getdate(), 111 )
2004/09/12
select CONVERT(varchar(12) , getdate(), 112 )
20040912
select CONVERT(varchar(12) , getdate(), 102 )
2004.09.12
select CAST(getdate() as varchar(12))
07 23 2012
07 23 2012
三、区别
个人觉得这两个方法区别不大,主要是convert方法多了个style,在日期转换时有更多的选择,有没有哪位高手,能够详细的解释一下这个地方?小女子不胜感激。