首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

存储过程中cast是什么意思?解决方法

2012-01-08 
存储过程中cast是什么意思?declare@SDdatetime,@EDdatetimeset@SDcast((cast(@Monthasvarchar)+-1-+cast(

存储过程中cast是什么意思?
declare   @SD   datetime,@ED   datetime
set   @SD   =   cast(   (cast(@Month   as   varchar)   +   '-1- '   +   cast(@year   as   varchar))   as   datetime)
set   @ED   =   dateadd(mm,1,@SD)

这语句实现了什么?

[解决办法]
set @SD = cast( (cast(@Month as varchar) + '-1- ' + cast(@year as varchar)) as datetime)

把一个字符串数据转换为时间类型的数据.
[解决办法]
cast(@Month as varchar) 将@month转换为字符串类型,cast(@year as varchar)一样
cast( (cast(@Month as varchar) + '-1- ' + cast(@year as varchar)) as datetime)将(cast(@Month as varchar) + '-1- ' + cast(@year as varchar))所得到的字符串类型转化为时间类型

cast 类型转换,一般用于字符串和时间类型之间
[解决办法]
@year 为2007,@month为8,@day为3

如果三者都为字符串型数据
cast(@year + '- ' + @month + '- ' + @day as datetime)

如果三者都为数值型数据.
cast(cast(@year as varchar)+ '- ' + cast(@month as varchar)+ '- ' + cast(@day as varchar) as datetime)

[解决办法]
现在有三个参数,@year,@month,@day分别从三个textbox中的text值得到.
要如何将这三个数连起来成一个datetime类型的变量.
-------------------------------
datetime类型的值应该是不能进行比较的,除非转换成字符串类型
declare @a
set @a=@year+ '- '+@month+ '- '+@day

这样得到的结果就是字条串类型的,

[解决办法]
数据类型转换:
cast
convert

热点排行