时间查询vb6和ms访问

时间:2010-01-25 07:00:32

标签: ms-access vb6

查询VB6和MS Access

表: -

         User Id       LogDate       LogTime 

            1            1/1/2010      9:00  

            1            1/1/2010     10:00   

            1            1/1/2010     11:29  

            1            2/1/2010     10:00

            2            2/1/2010     22:00

            2            3/1/2010    11:00

需要显示为: -

             User Id   LogDate   LogTime   LogDate     LogTime   

             1       1/1/2010  9:00    1/1/2010        10:00   

             1       1/1/2010  11:29   2/1/2010        10:00  

             2       2/1/2010  22:00   3/1/2010        11:00     

1 个答案:

答案 0 :(得分:0)

您需要使用子查询来查找用户的下一个日期,例如:

SELECT tblStackOverflowTimeQuery.lngUserId, tblStackOverflowTimeQuery.datLogDateTime,
  (SELECT TOP 1 tblStackOverflowTimeQuery2.datLogDateTime
   FROM tblStackOverflowTimeQuery AS tblStackOverflowTimeQuery2
   WHERE tblStackOverflowTimeQuery.lngUserId = tblStackOverflowTimeQuery2.lngUserId
     AND tblStackOverflowTimeQuery2.datLogDateTime > tblStackOverflowTimeQuery.datLogDateTime
   ORDER BY tblStackOverflowTimeQuery2.datLogDateTime
  ) AS datEndDateTime
FROM tblStackOverflowTimeQuery
ORDER BY tblStackOverflowTimeQuery.lngUserId, tblStackOverflowTimeQuery.datLogDateTime;

这将给出以下内容:

lngUserId   datLogDateTime          datEndDateTime
1           01/01/2010 09:00:00 01/01/2010 10:00:00
1           01/01/2010 10:00:00 01/01/2010 11:29:00
1           01/01/2010 11:29:00 02/01/2010 10:00:00
1           02/01/2010 10:00:00 
2           02/01/2010 22:00:00 03/01/2010 11:00:00
2           03/01/2010 11:00:00 

这不是你想要的,但它是一个开始。

使用代码执行这些操作最简单,但这取决于您希望如何使用它。据推测,您的数据中没有任何内容表明哪个条目是开始,哪个条目是结束。