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