日期:2014-05-17  浏览次数:20492 次

在存储过程中怎么获得时间差?
CREATE PROC [dbo].[PWork]
@Date1 VARCHAR(20),
@Date2 VARCHAR(20),
@OperId int
AS

declare @DiffDate int 
--------------------------
set @DiffDate=select datediff(DAY,@Date1,@Date2) 出错

select datediff(DAY,@Date1,@Date2) into @DiffDate 也出错

该怎么获得select datediff(DAY,@Date1,@Date2)的结果啊?


------解决方案--------------------
改成这样试试:

CREATE PROC [dbo].[PWork]
@Date1 VARCHAR(20),
@Date2 VARCHAR(20),
@OperId int
AS

declare @DiffDate int 
--------------------------
set @DiffDate= datediff(DAY,@Date1,@Date2) 
------解决方案--------------------
alter PROC [dbo].[PWork]
@Date1 VARCHAR(20),
@Date2 VARCHAR(20),
@OperId int
AS

declare @DiffDate int 

select @DiffDate= datediff(DAY,@Date1,@Date2)
 
------解决方案--------------------
楼主传递的什么参数啊? sql里手动赋值是正确的。。。
------解决方案--------------------
set 和select不能在一起

------解决方案--------------------
http://blog.csdn.net/dba_huangzj/article/details/8503028
------解决方案--------------------
楼主这样试试

declare @DiffDate int 

select @DiffDate =datediff(DAY,@Date1,@Date2)

select @DiffDate