日期:2014-05-18  浏览次数:20633 次

存储过程中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