1

我有一个包含字段用户名和 lastUpdateDateTime 的表。如果用户在此表中输入了多个条目,我想看看第一个条目和最后一个条目之间的区别是什么,以分钟和秒为单位。我想我可能会使用函数 DATEDIFF 但我的数据库没有开始日期和结束日期作为两个单独的字段。我应该使用游标来循环按用户名排序的结果吗?

不知道该怎么做。

这是最新的...

SELECT username,  
DATEDIFF(ss, MinDate, MaxDate) Assessment_Timespan,
AssessmentDate
FROM
(
SELECT storeID, username,
MIN(lastUpdateDateTime) MinDate,
MAX(lastUpdateDateTime) MaxDate, 
CONVERT(VARCHAR(50), LastUpdateDateTime, 101) AS AssessmentDate
FROM Assessment
GROUP BY username, storeID, CONVERT(VARCHAR(50), LastUpdateDateTime, 101)
) src
4

1 回答 1

1

你可以使用这样的东西。它得到了每个 的minmaxusername。一旦你有了它,你就可以将DateDiff()函数应用到它:

select username,  
  datediff(ss, MinDate, MaxDate) DiffInSeconds
from
(
  select username,
    min(lastUpdateDateTime) MinDate,
    max(lastUpdateDateTime) MaxDate
  from yourtable
  group by username
) src

请参阅带有演示的 SQL Fiddle

这会给您以秒为单位的差异,然后您可以以您需要的任何方式对其进行格式化。

于 2013-02-06T17:50:19.157 回答