
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
07.12.2013, 15:42:24
|
|||
|---|---|---|---|
|
|||
2 поля timestamp или 2 поля datetime |
|||
|
#18+
Добрый день, уважаемые участники форума! Есть сервис, на котором пользователи создают и участвуют в тендерах. Собственно, есть таблица, содержащая основную информацию по этим тендерам. Помимо прочих, таблица содержит 2 поля: date - дата создания тендера, и date_closed - дата закрытия тендера. Оба поля типа DATE. Недавно подумал, что было бы не плохо показывать время, когда был создан или закрыт тендер. Для этого уже сделали доработку, и теперь мы знает тайм зону пользователя (они их разных регионов РФ) и можем делать запрос к БД с учётом часового пояса юзера. Но вот проблема - никак не удается понять, как теперь перестроить таблицы, а также процесс записи новых тендеров, обновления инфы и закрытия тендеров. С добавлением новой записи более или менее понятно - есть сделать поле date по типу timestamp default CURRENT_TIMESTAMP, то про это поле можно забыть, поскольку оно будет работать на автомате. Но как в этом случаем быть с полем date_closed - когда пользователь закрывает тендер, как добиться, чтобы в этот момент это поле обновлялось до текущей даты и времени? Накопал конструкцию "TIMESTAMP ON UPDATE CURRENT_TIMESTAMP", но как теперь добавить эту запись к существующему полю? Или может вообще отказаться от timestamp в полю datetime - просто перед вставкой новой записи (и при закрытии тендера) переводить дату в unix_timestamp и записывать в таком виде, а выводить уже в поправкой на часовой пояс юзера? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.12.2013, 07:22:25
|
|||
|---|---|---|---|
|
|||
2 поля timestamp или 2 поля datetime |
|||
|
#18+
Игорь В.П., Вам следует установить триггер на событие AFTER UPDATE, в нем можно сделать SET NEW.date := now(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.12.2013, 12:02:05
|
|||
|---|---|---|---|
2 поля timestamp или 2 поля datetime |
|||
|
#18+
Игорь В.П.как теперь добавить эту запись к существующему полю?RTFM Alter Table Игорь В.П.Или может вообще отказаться от timestamp в полю datetime - просто перед вставкой новой записи (и при закрытии тендера) переводить дату в unix_timestamp и записывать в таком виде, а выводить уже в поправкой на часовой пояс юзера?Не надо думать, что ты что-то сделаешь лучше, чем специально предназначенный для этого инструмент. Paymer-SoftВам следует установить триггер на событие AFTER UPDATE, в нем можно сделать SET NEW.date := now();Ничем не оправдано. Остальное - см. выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.12.2013, 14:22:46
|
|||
|---|---|---|---|
2 поля timestamp или 2 поля datetime |
|||
|
#18+
Игорь В.П., текущее время пусть программа вычисляет, а mysql только хранит, играть в таймзоны тоже не советую- проблем и непоняток потом много всплывает, итого: все времена хранить в UTC, ОС сервака тоже лучше настроить на эту таймзону, с таймзонами играть только при выводе-вводе, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&tablet=1&tid=1835581]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 332ms |

| 0 / 0 |
