首页 > 解决方案 > 在sql存储过程中查找创建日期和更新日期之间的最新日期

问题描述

我的表中有两列作为创建日期和更新日期。我想从中找到最新的日期。我想考虑最新的日期并从输入值中过滤它。

我目前的查询是:-

Select * 
from Emp E 
WHERE (E.USERID=@UserID) and (E.CDATE >= @FromDate AND E.CDATE <= @ToDate) order by qdate desc

标签: sql-serverstored-procedures

解决方案


您可以使用系统日期减去 fromDate 和 toDate 以找到最新日期。通过使用案例,您可以根据最新日期进行过滤。像:

SELECT  *
FROM    Emp E
WHERE   ( E.USERID = @UserID )
        AND E.CDATE = CASE WHEN @fromdate - GETDATE() > @toDate - GETDATE()
                           THEN @fromdate
                           ELSE @toDate
                      END;

要查找两个日期之间的最新日期,您可以使用下面的脚本参考。

DECLARE @fromdate DATETIME, @toDate DATETIME, @date DATETIME
SET @fromdate = '2019-04-05'
SET @toDate = '2019-05-05'

SET @date = CASE WHEN @fromdate - GETDATE() > @toDate - GETDATE() THEN @fromdate
            ELSE @toDate
            END;
SELECT @date; 

推荐阅读