如何确定员工最新的dateofEntry?

时间:2013-04-23 03:07:15

标签: sql sql-server-2008 sql-server-2005

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

如何确定员工的最新访问日期并增加3年?

我尝试了以下内容:

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

这并没有给我最新的访问日期。

然后我需要增加3年。

1 个答案:

答案 0 :(得分:2)

以下是显示以下所有三个查询的SQL Fiddle。如果您需要讨论某些内容,请查看并编辑它。

使用DATEADD()

可以添加3年
  select top (1) DATEADD(year, 3, dateOfVisit) [DateOfVisitPlus3Years]
    from [table]
   where empid=123
order by dateOfVisit DESC;

您在标题中以及文本中的不同时间使用了单数形式“employee”,并为单个员工提供了查询。但是,如果您实际上需要跨多个员工,则只需使用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;