CREATE proc ...
@sort int,
@@pact_time DateTime
AS
DECLARE @ok_time DateTime
if(@sort=1)
begin
set @ok_time=@pact_time
end
if(@sort=2)
begin
set @ok_time=datepart(dd,@pact_time)-3
end
....
INSERT INTO pact(pact_time)
VALUES (@ok_time)
当@sort=1时,@ok_time=1900-01-06,
当@sort=2时,@ok_time=null,
为什么不正确,请各位大哥帮指点
@sort int,
@@pact_time DateTime
AS
DECLARE @ok_time DateTime
if(@sort=1)
begin
set @ok_time=@pact_time
end
if(@sort=2)
begin
set @ok_time=datepart(dd,@pact_time)-3
end
....
INSERT INTO pact(pact_time)
VALUES (@ok_time)
当@sort=1时,@ok_time=1900-01-06,
当@sort=2时,@ok_time=null,
为什么不正确,请各位大哥帮指点
楼主的条件和存储过程写的不一样呀。稍微修改了下。
CREATE proc ...
@sort int,
@@pact_time DateTime
AS
select @pact_time = '1900-01-06'
DECLARE @ok_time DateTime
if(@sort=1)
begin
set @ok_time=@pact_time
end
if(@sort=2)
begin
set @ok_time=dateadd(d,-3,@pact_time)
end
....
INSERT INTO pact(pact_time)
VALUES (@ok_time)
begin
set @ok_time=dateadd(day,-3,@pact_time)
end
set @ok_time=datepart(dd,@pact_time)-3
感觉是不是会出现负数呀
begin
set @ok_time=dateadd(day,-3,@pact_time)
end 把@sort=2的部分替换成上面的。@ok_time 应该是一个时间,而datepart(dd,@pact_time)-3 是一个整数,类型不匹配
@sort int,
@@pact_time DateTime
AS
DECLARE @ok_time DateTime
if(@sort=1)
begin
set @ok_time=@pact_time
end
if(@sort=2)
begin
set @ok_time=datepart(dd,@pact_time)-3
end
....
INSERT INTO pact(pact_time)
VALUES (@ok_time)
当@sort=1时,@ok_time=1900-01-06,
当@sort=2时,@ok_time=null,
set @ok_time=@pact_time
dateadd 返回是datetime,datepart =》dateadd