Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / 2 поля timestamp или 2 поля datetime / 4 сообщений из 4, страница 1 из 1
07.12.2013, 15:42:24
    #38492764
Игорь В.П.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 поля timestamp или 2 поля datetime
Добрый день, уважаемые участники форума! Есть сервис, на котором пользователи создают и участвуют в тендерах. Собственно, есть таблица, содержащая основную информацию по этим тендерам. Помимо прочих, таблица содержит 2 поля: date - дата создания тендера, и date_closed - дата закрытия тендера. Оба поля типа DATE. Недавно подумал, что было бы не плохо показывать время, когда был создан или закрыт тендер. Для этого уже сделали доработку, и теперь мы знает тайм зону пользователя (они их разных регионов РФ) и можем делать запрос к БД с учётом часового пояса юзера. Но вот проблема - никак не удается понять, как теперь перестроить таблицы, а также процесс записи новых тендеров, обновления инфы и закрытия тендеров.

С добавлением новой записи более или менее понятно - есть сделать поле date по типу timestamp default CURRENT_TIMESTAMP, то про это поле можно забыть, поскольку оно будет работать на автомате. Но как в этом случаем быть с полем date_closed - когда пользователь закрывает тендер, как добиться, чтобы в этот момент это поле обновлялось до текущей даты и времени? Накопал конструкцию "TIMESTAMP ON UPDATE CURRENT_TIMESTAMP", но как теперь добавить эту запись к существующему полю? Или может вообще отказаться от timestamp в полю datetime - просто перед вставкой новой записи (и при закрытии тендера) переводить дату в unix_timestamp и записывать в таком виде, а выводить уже в поправкой на часовой пояс юзера? Спасибо.
...
Рейтинг: 0 / 0
08.12.2013, 07:22:25
    #38493115
Paymer-Soft
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 поля timestamp или 2 поля datetime
Игорь В.П.,

Вам следует установить триггер на событие AFTER UPDATE, в нем можно сделать SET NEW.date := now();
...
Рейтинг: 0 / 0
08.12.2013, 12:02:05
    #38493174
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 поля timestamp или 2 поля datetime
Игорь В.П.как теперь добавить эту запись к существующему полю?RTFM Alter Table

Игорь В.П.Или может вообще отказаться от timestamp в полю datetime - просто перед вставкой новой записи (и при закрытии тендера) переводить дату в unix_timestamp и записывать в таком виде, а выводить уже в поправкой на часовой пояс юзера?Не надо думать, что ты что-то сделаешь лучше, чем специально предназначенный для этого инструмент.

Paymer-SoftВам следует установить триггер на событие AFTER UPDATE, в нем можно сделать SET NEW.date := now();Ничем не оправдано. Остальное - см. выше.
...
Рейтинг: 0 / 0
08.12.2013, 14:22:46
    #38493249
bochkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 поля timestamp или 2 поля datetime
Игорь В.П.,
текущее время пусть программа вычисляет, а mysql только хранит,
играть в таймзоны тоже не советую- проблем и непоняток потом много всплывает,
итого: все времена хранить в UTC, ОС сервака тоже лучше настроить на эту таймзону,
с таймзонами играть только при выводе-вводе,
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / 2 поля timestamp или 2 поля datetime / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]