-2

每个员工都有机会记录访问日期,最多 3 次访问。

如何确定员工最近的访问日期并将其添加 3 年?

我尝试了以下方法:

select top 1 dateOfVisit from table 
  where empid=123 
  Order by dateOfVisit DESC

这不是给我最新的访问日期。

然后我需要增加3年。

4

1 回答 1

2

这是一个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;
于 2013-04-23T03:10:11.207 回答