从数据库获取DateTime变量时出现问题

时间:2011-03-23 09:34:08

标签: sql-server

我曾经在第一次登录Syatem时获取用户的登录时间,用户正在进行的所有活动都将存储在名为“活动”的单独列中。我的问题是用户可以在特定日期多次登录系统,但我想只检索第一次登录时间。当我根据活动编写查询以获取Timings时,LogOn计时出现。如下所示。

                Time             User                   Activity
          '3/23/2011 9:55:00AM'   kk                    LogOn
          '3/23/2011 5:30:00PM'   kk                    LogOn

我编写了一个Query来检索这些值

从AgentLog中选择StartDateTime,User,Activity,其中Activity ='LogOn'。所以,任何人都可以给我一些小帮助,我怎样才能检索给定用户的第一个LogOn时间。我正在使用Sql Server 2008,会有Somany天,用户登录,所以每天我需要获得登录时间

2 个答案:

答案 0 :(得分:1)

使用以下分组获取他们登录的每一天的最早时间:

Select min(StartDateTime)
from AgentLog 
where Activity='LogOn' and
  User = 'Username'
group by datepart(day, StartDateTime), 
   datepart(month, StartDateTime), 
   datepart(year, StartDateTime)

答案 1 :(得分:0)

如果您不将时间存储为字符串,而是存储时间戳(以秒为单位),则只需选择数据即可:

Select StartDateTime,Activity from AgentLog where Activity='LogOn' AND time>timeofday ORDER by time LIMIT 1

其中timeofday是当天午夜的时间戳