我有桌子
user_details (mobile_num, log, lat, datetime1)
9999999999 10 10 2014-05-02 09:31:05
9999999999 10 10 2014-05-02 10:00:05
...............
9999999999 10 10 2014-05-02 06:30:05
1111111111 10 10 2014-05-02 09:32:05
1111111111 10 10 2014-05-02 10:00:05
...............
1111111111 10 10 2014-05-02 06:32:05
此表每分钟更新一次 这是用户表 用户(mobile_num,名称) 1111111111 A. 9999999999 B
在user_details表中,我需要获取今天或任何日期的每个用户的第一个和最后一个记录 REsult是
ph num1 name log lat第一个条目 ph num1 name log lat最后一个条目 ph num2 name log lat第一个条目 ph num2 name log lat last entry
我正在使用mysql
我使用了这个查询
select * from user_time_details,user user_time_details.phone_number = user.phone_num and now_date_time> DATE_SUB(CURDATE())按名称排序,id
这将为所有用户提供今天的所有条目
9999999999 10 10 2014-05-02 09:31:05 (first)
9999999999 10 10 2014-05-02 10:00:05
...............
9999999999 10 10 2014-05-02 06:30:05 (last)
2222222222 10 10 2014-05-02 09:31:05 (first)
2222222222 10 10 2014-05-02 10:00:05
...............
2222222222 10 10 2014-05-02 06:30:05 (last)
但我只需要第一个和最后一个记录
答案 0 :(得分:1)
用于SQL Server
DECLARE @today DATETIME = GETDATE();
SELECT TOP 1 * FROM user_details WHERE DATEDIFF(day, datetime1, @today) = 0
ORDER BY datetime1
UNION ALL
SELECT TOP 1 * FROM user_details WHERE DATEDIFF(day, datetime1, @today) = 0
ORDER BY datetime1 DESC;