我有一个名为
的sql server表Datetime
=======
column UserID(int), DateTime(datetime)
它存储用户的出勤数据。
每个用户每天都有多个日期时间数据。
我需要在给定日期范围内给定用户每天的第一个DateTime数据,然后我需要将它们与特定时间08:00:00
进行比较以获得迟到的出勤率。
怎么做到这一点?
答案 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'