|
|
|
| Добрый день. Пожалуйста, помогите составить MYSQL запрос из следующих данных.
Имеется таблица AuctionGames, в ней есть две колонки PeriodMinutes - длительность аукциона в минутах (INT) и LastBetDate - дата и время последней ставки (DATETIME). Необходимо написать SQL запрос, который вернёт все строки у которых дата и время последней ставки + длительность аукциона в минутах меньше текущей даты и времени.
Я долго мучался, и дошел до следующих результатов:
SELECT * FROM `AuctionGames` WHERE (UNIX_TIMESTAMP(LastBetDate + INTERVAL PeriodMinutes MINUTE) - UNIX_TIMESTAMP()) < 0
|
Но этот вариант работает неверно!
Основная проблема в том, что если сейчас например 23 часа, а PeriodMinutes например 70 минут, то при сравнении получается расхождение в сутки.
Пожалуйста, помогите разобраться... | |
|
|
|
|
|
|
|
для: pavluxa09
(16.07.2011 в 00:14)
| | А вы поступайте проще
SELECT * FROM `AuctionGames`
WHERE (LastBetDate + INTERVAL PeriodMinutes MINUTE) < NOW()
|
| |
|
|
|
|
|
|
|
для: cheops
(16.07.2011 в 10:40)
| | Например LasBetDate равно 2010-07-15 23:00:00 , а PeriodMinutes равно 70, то результатом (LastBetDate + INTERVAL PeriodMinutes MINUTE) будет 2010-07-16 00:10:00. А сейчас например 2010-07-16 10:00:00 , то результатом логического выражения 2010-07-16 00:10:00 < 2010-07-16 10:00:00 почему то будет FALSE. | |
|
|
|
|
|
|
|
для: pavluxa09
(16.07.2011 в 17:46)
| | Не должно такого быть, у вас следующий запрос что возвращает?
SELECT '2010-07-16 00:10:00' < '2010-07-16 10:00:00' FROM DUAL;
|
| |
|
|
|
|
|
|
|
для: cheops
(16.07.2011 в 17:58)
| | 1 | |
|
|
|
|
|
|
|
для: cheops
(16.07.2011 в 17:58)
| | 1 | |
|
|
|
|
|
|
|
для: pavluxa09
(16.07.2011 в 19:02)
| | Это TRUE, FALSE - 0. | |
|
|
|