每个员工都有机会记录访问日期,最多 3 次访问。
如何确定员工最近的访问日期并将其添加 3 年?
我尝试了以下方法:
select top 1 dateOfVisit from table
where empid=123
Order by dateOfVisit DESC
这不是给我最新的访问日期。
然后我需要增加3年。
每个员工都有机会记录访问日期,最多 3 次访问。
如何确定员工最近的访问日期并将其添加 3 年?
我尝试了以下方法:
select top 1 dateOfVisit from table
where empid=123
Order by dateOfVisit DESC
这不是给我最新的访问日期。
然后我需要增加3年。
这是一个SQL Fiddle,显示了下面的所有三个查询。如果您需要讨论某些内容,请查看并编辑它。
可以使用DATEADD()添加 3 年
select top (1) DATEADD(year, 3, dateOfVisit) [DateOfVisitPlus3Years]
from [table]
where empid=123
order by dateOfVisit DESC;
您在标题中使用了单数形式“员工”,并在文本中多次使用,并为单个员工提供了查询。但是在您实际上需要跨多个员工的远程可能性中,只需使用 MAX()
select empid, DATEADD(year, 3, max(dateOfVisit)) [DateOfVisitPlus3Years]
from [table]
group by empid;
下面的查询为您提供了从当前日期(即“今天”)到每个员工的最后一个(最近的)dateOfVisit 之间经过的天数
select empid,
DATEDIFF(day, max(dateOfVisit), CURRENT_TIMESTAMP) [DaysSinceLastVisit]
from [table]
group by empid;