2

这是我的方法,我可是从和日期在程序 得到我要检查是否FROM和TO日期之间的差值大于2条件要比较两个日期从参数和地址,如果它满足

如果条件满足,我必须从天添加2天并将其设置为TODATE

ALTER PROCEDURE [dbo].[sp_TU_AvgStdDev_Report] 
@FromDate as Datetime, 
@ToDate as Datetime, 
@RecipeCode as Varchar(8000), 
@Grade as Varchar(10), 
@WcID as Int 
AS 
BEGIN 
-- SET NOCOUNT ON added to prevent extra result sets from 
SET NOCOUNT ON; 
IF (condition to check if @FromDate - @ToDate > 2) 
--if it satisfies 
SET @ToDate to @fromDate+2Days 

请帮我想出来的......

+0

请问您可以检查下面的解决方案,并请标记为答案。 –

回答

1

您需要为此使用日期函数。

ALTER PROCEDURE [dbo].[sp_TU_AvgStdDev_Report] 
@FromDate as Datetime, 
@ToDate as Datetime, 
@RecipeCode as Varchar(8000), 
@Grade as Varchar(10), 
@WcID as Int 
AS 
BEGIN 
IF (datediff(day,@FromDate,@ToDate)>2) 
SET @ToDate = DATEADD(day,2, @fromDate) 
+0

谢谢你这个工作 –

1

使用DATEDIFFDATEADD功能

IF DATEDIFF(D,@FromDate,@ToDate) > 2 
BEGIN 
    --if it satisfies 
    SET @ToDate = DATEADD(D,2, @fromDate) 
END 
+1

谢谢你这个工作! –

1

首先通过将其转换为日期像

convert(date,convert(varchar,@FromDate)) 
convert(date,convert(varchar,@ToDate)) 

所以后来取出一部分时间从日期,你将有只有日期,然后你可以找到两个日期之间的区别使用DATEDIFF SQL函数

最终解决

IF DATEDIFF(day,convert(date,convert(varchar,@FromDate)),convert(date,convert(varchar,@ToDate))) > 2 
BEGIN 
    --if it satisfies 
    SET @ToDate = DATEADD(day,2, convert(date,convert(varchar,@FromDate))) 
END 
+0

如果这可以帮助你,请标记为答案或投票up –

1

你应该使用DateDiff 使用下面的查询可能会帮助你。

if(Datediff(day, Todate, FromDate) > 2) 
// Your query