2013-09-14 2 views
0

у меня есть:MySql получить предыдущие строки byTimeStamp

Таблица infoUpdate
+ ------- + ----------- + ---------- - + ----------- + ----------- +
| idKey1 | idKey2 | __date_Update_ | DayWeek |
+ ------- + ----------- + ----------- + ----------- + --- -------- +
| 1___ | __ __ _ _ | 2013.01.01 15:00:00 | 2 |
| 1___ | __ __ _ _ | 2013.01.01 18:00:00 | 2 |
| 1___ | __ __ _ _ | 2013.01.02 15:00:00 | 3 |
| 1___ | __ __ _ _ | 2013.01.02 18:00:00 | 3 |
| 1___ | __ __ _ _ | 2013.01.03 15:00:00 | 4 |
| 1___ | __ __ _ _ | 2013.01.03 18:00:00 | 4 |
+ ------- + ----------- + ----------- + ----------- + --- -------- +

Как получить только предыдущие строки по TIMESTAMP

Select * FROM infoUpdate если где date_Update < = '2013.01.03 18:00:00';

Это то, что я смотрю на получение:

+ ------- + ----------- + ----------- + ----------- + ----------- +
| idKey1 | idKey2 | date_Update | DayWeek |
+ ------- + ----------- + ----------- + ----------- + --- -------- +
| 1 | 3 | 2013.01.01 18:00:00 | 2 |
| 1 | 3 | 2013.01.02 18:00:00 | 3 |
| 1 | 3 | 2013.01.03 18:00:00 | 4 |
+ ------- + ----------- + ----------- + ----------- + --- -------- +

+1

Удалить 'if' из вашего запроса. – Itay

ответ

0

будет ли она работать для вас:

Select idKey1, idKey2 , DayWeek, MAX(dateUpdate) as dateUpdate 
FROM infoUpdate 
where date_Update <='2013.01.03 18:00:00' 
GROUP BY idKey1, idKey2 , DayWeek, DATE(dateUpdate); 

Если вы заинтересованы в только на прошлой неделе данные, DATE(dateUpdate) могут быть удалены из GROUP BY.

+0

TimeStamp может быть любым примером 2013.01.03 15:00:00? – user2779361

+0

Я скопировал временную метку с вопроса. Конечно, это может быть что угодно – a1ex07

1

будет эта работа для вас

Select * FROM infoUpdate where date_Update >= DATE_SUB('2013.01.03 18:00:00' ,INTERVAL 90 DAY) 

это даст вам 90 дней записи предшествующих дате упоминается

Смежные вопросы