sql datetime获取每天的第一个值

时间:2012-02-02 01:39:57

标签: sql datetime

我有一个名为

的sql server表
Datetime
=======
column UserID(int), DateTime(datetime)

它存储用户的出勤数据。 每个用户每天都有多个日期时间数据。 我需要在给定日期范围内给定用户每天的第一个DateTime数据,然后我需要将它们与特定时间08:00:00进行比较以获得迟到的出勤率。 怎么做到这一点?

2 个答案:

答案 0 :(得分:3)

如果理解正确,这里是您的查询

SELECT  UserID,
        CONVERT(VARCHAR(10),[datetime],111) as [AttendaceDate],
        MIN([datetime]) as [Date In], DATEDIFF(mi, MIN([datetime]), Convert(Datetime, CONVERT(VARCHAR(10),[datetime],111) + ' 8:00 am')) as [Minutes Late]
  FROM  TestTable
GROUP BY UserID, CONVERT(VARCHAR(10),[datetime],111)

答案 1 :(得分:1)

SELECT  UserID,
        CONVERT(VARCHAR(10),Dateime,111),
        MIN(Datetime)
  FROM  table
GROUP BY UserID, CONVERT(VARCHAR(10),Dateime,111)
WHERE   Datetime BETWEEN '1/1/2012' AND '1/5/2012'