|
|
|
| Добрый день. В таблице имеется два поля: update_date - дата обновления записи (значение DATETIME), duration_minutes - через какое количество минут нужно обновлять (значение INT).
Необходимо составить MYSQL запрос, который показывает все записи с моей таблицы + добавляет новую колонку before_end_time типа INT. Сама колонка показывает сколько минут осталось до того, как с момента update_date пойдёт duration_minutes.
У меня не получается это сделать так как я не совсем понимаю как работать со временем в MYSQL. Пожалуйста помогите, заранее спасибо! | |
|
|
|
|
|
|
|
для: pavluxa09
(09.07.2011 в 15:47)
| | Можно начать отталкиваться от следующего запроса
SELECT update_date + INTERVAL duration_minutes MINUTE FROM tbl;
|
| |
|
|
|
|
|
|
|
для: cheops
(09.07.2011 в 15:58)
| | В результате долгих измучений получил код:
SELECT *, (last_bet_date + INTERVAL duration_minutes MINUTE) as end_date, (last_bet_date + INTERVAL duration_minutes MINUTE - NOW()) as before_end_seconds FROM `tbl_auction_games` ORDER By `duration_minutes` DESC
|
Но в нём проблема, поле before_end_seconds по идее должно хранить количество секунд, место этого оно хранит строку вида количество_часовколичество_секунд. Как исправить? Оно неправильно отнимает NOW() | |
|
|
|
|
|
|
|
для: pavluxa09
(10.07.2011 в 08:56)
| | Нет, к секундам явно нужно приводить при помощи функции UNIX_TIMESTAMP()
SELECT *, (last_bet_date + INTERVAL duration_minutes MINUTE) as end_date,
(UNIX_TIMESTAMP(last_bet_date + INTERVAL duration_minutes MINUTE) - UNIX_TIMESTAMP()) as before_end_seconds
FROM `tbl_auction_games`
ORDER By `duration_minutes` DESC
|
| |
|
|
|
|
|
|
|
для: cheops
(10.07.2011 в 11:49)
| | Большое спасибо, Вы настоящий программист! | |
|
|
|