mysql查询从两次以上的更新中选择一天的上次更新数据

mysql查询从两次以上的更新中选择一天的上次更新数据,mysql,Mysql,例: date time temperature updated_time 01-04-2015 0:00 30 1:00:00 AM 01-04-2015 1:00 31 1:00:00 AM 01-04-2015 2:00 32 1:00:00 AM 01-04-2015 3:00 30 3:00:00 AM 01-04-2015 4:00 30 3:00:00 AM 01-04-2015 5:00 31 3:00:00

例:

date    time    temperature updated_time
01-04-2015  0:00    30  1:00:00 AM
01-04-2015  1:00    31  1:00:00 AM
01-04-2015  2:00    32  1:00:00 AM
01-04-2015  3:00    30  3:00:00 AM
01-04-2015  4:00    30  3:00:00 AM
01-04-2015  5:00    31  3:00:00 AM
01-04-2015  6:00    32  6:00:00 AM
01-04-2015  7:00    30  6:00:00 AM

.   .   .   .
.   .   .   .
.   .   .   .

01-04-2015  21:00   30  9:00:00 PM
01-04-2015  22:00   30  9:00:00 PM
01-04-2015  23:00   30  9:00:00 PM
表数据如下所示。我需要查询结果,如下所示。帮帮我,伙计们。。。 资料

Data            
date    time    temperature updated_time
01-04-2015  0:00    30  1:00:00 AM
01-04-2015  1:00    31  
01-04-2015  2:00    32  
01-04-2015  3:00    30  
01-04-2015  4:00    31  
.   .   .   .
.   .   .   .
.   .   .   .
01-04-2015  24:00:00    30  1:00:00 AM

01-04-2015  3:00    30  3:00:00 AM
01-04-2015  4:00    31  3:00:00 AM
01-04-2015  5:00    32  3:00:00 AM
01-04-2015  6:00    30  3:00:00 AM
.   .   .   .
.   .   .   .
.   .   .   .
01-04-2015  24:00:00    30  3:00:00 AM

01-04-2015  6:00    30  6:00:00 AM
01-04-2015  7:00    31  6:00:00 AM
01-04-2015  8:00    32  6:00:00 AM
01-04-2015  9:00    30  6:00:00 AM
.   .   .   .
.   .   .   .
.   .   .   .
01-04-2015  24:00:00    30  6:00:00 AM
date    time    temperature updated_time
01-04-2015  0:00    30  1:00:00 AM
01-04-2015  1:00    31  1:00:00 AM
01-04-2015  2:00    32  1:00:00 AM
01-04-2015  3:00    30  3:00:00 AM
01-04-2015  4:00    30  3:00:00 AM
01-04-2015  5:00    31  3:00:00 AM
01-04-2015  6:00    32  6:00:00 AM
01-04-2015  7:00    30  6:00:00 AM

.   .   .   .
.   .   .   .
.   .   .   .

01-04-2015  21:00   30  9:00:00 PM
01-04-2015  22:00   30  9:00:00 PM
01-04-2015  23:00   30  9:00:00 PM
结果将是

date    time    temperature updated_time
01-04-2015  0:00    30  1:00:00 AM
01-04-2015  1:00    31  1:00:00 AM
01-04-2015  2:00    32  1:00:00 AM
01-04-2015  3:00    30  3:00:00 AM
01-04-2015  4:00    30  3:00:00 AM
01-04-2015  5:00    31  3:00:00 AM
01-04-2015  6:00    32  6:00:00 AM
01-04-2015  7:00    30  6:00:00 AM

.   .   .   .
.   .   .   .
.   .   .   .

01-04-2015  21:00   30  9:00:00 PM
01-04-2015  22:00   30  9:00:00 PM
01-04-2015  23:00   30  9:00:00 PM

假设您的数据表看起来像

date    time    temperature updated_time
01-04-2015  0:00    30  1:00:00 AM
01-04-2015  1:00    31  1:00:00 AM
01-04-2015  2:00    32  1:00:00 AM
01-04-2015  3:00    30  3:00:00 AM
01-04-2015  4:00    30  3:00:00 AM
01-04-2015  5:00    31  3:00:00 AM
01-04-2015  6:00    32  6:00:00 AM
01-04-2015  7:00    30  6:00:00 AM

.   .   .   .
.   .   .   .
.   .   .   .

01-04-2015  21:00   30  9:00:00 PM
01-04-2015  22:00   30  9:00:00 PM
01-04-2015  23:00   30  9:00:00 PM
CREATE TABLE data (
    date date,
    time time,
    temperature decimal, 
    updated_time time
);
下面应该可以做到这一点:

date    time    temperature updated_time
01-04-2015  0:00    30  1:00:00 AM
01-04-2015  1:00    31  1:00:00 AM
01-04-2015  2:00    32  1:00:00 AM
01-04-2015  3:00    30  3:00:00 AM
01-04-2015  4:00    30  3:00:00 AM
01-04-2015  5:00    31  3:00:00 AM
01-04-2015  6:00    32  6:00:00 AM
01-04-2015  7:00    30  6:00:00 AM

.   .   .   .
.   .   .   .
.   .   .   .

01-04-2015  21:00   30  9:00:00 PM
01-04-2015  22:00   30  9:00:00 PM
01-04-2015  23:00   30  9:00:00 PM
SELECT date, time, temperature, updated_time 
FROM data d1
WHERE d1.updated_time=
    (SELECT MAX(updated_time) FROM data d2 WHERE d2.date=d1.date and d2.time=d1.time)
ORDER BY date, time;

步骤1是使用正确的数据类型存储日期/时间