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

急救!高手帮忙看看我的sql程序,我觉得太没道理了。
declare   @Add_num   int
declare   @EndDate0   datetime
declare   @EndDate   datetime

set   @Add_num=10
set   @EndDate0=null   -- ' '或其他时间值都能打印出来,就是null不行。

if(@EndDate0=null   or   @EndDate0 <getdate()   or   (convert(varchar(30),@EndDate0))+ ' '= ' ')
begin
set   EndDate0=getdate()
end

set   @EndDate=DATEADD(year,@Add_num,@EndDate0)
set   @EndDate=convert(datetime,Datename(year,@EndDate)+
'- '+Datename(month,@EndDate)+
'- '+Datename(day,@EndDate))
print   @EndDate

这里为什么打印不出来值?

------解决方案--------------------
@EndDate0=null
-----
改为 @EndDate0 is null
------解决方案--------------------
值跟null的比较应该是
@a is null
@a is not null