DATETIME mySQL автоматическая установка

casinolot

Гуру форума
Регистрация
21 Окт 2010
Сообщения
547
Реакции
87
Не могу понять какую опцию выбрать чтобы при создании записи автоматом данный тип
заполнялся.
Но некоторые рекомендуют установить тип поля TIMESTAMP -- тогда по умолчанию при создании записи поле будет содержать значение текущего времени,но абсолютно никаких гарантий, что системное время на сервере баз данных будет то же, что на сервере приложения или фиксировать клиентское время явным образом.
Кто еще что может предложить
 
PHP:
mysql_query("INSERT INTO table SET `id`='".$id."',..... `datetime`='".time()."', .....");
 
Код:
INSERT INTO table(id, date_field) VALUES (1, NOW())
 
А вообще, что вы имели ввиду про "но абсолютно никаких гарантий, что системное время на сервере баз данных будет то же, что на сервере приложения"?
:smmne: Надо синхронизировать время. Почти во всех проектах отталкиваюсь от времени на сервере БД и почти не использую время на вебсервере (кроме логов, разумеется).
 
Код:
mysql_query("INSERT INTO table SET `id`='".$id."',..... `datetime`='".time()."', .....");

Лучше всегда использовать данный код. Иногда в коде нужно использовать time(). Если еще в запросах к базе использовать NOW() , то в варианте размещения базы не на локалхост, мы имеем два значения времени.
 
Код:
mysql_query("INSERT INTO table SET `id`='".$id."',..... `datetime`='".time()."', .....");

Лучше всегда использовать данный код. Иногда в коде нужно использовать time(). Если еще в запросах к базе использовать NOW() , то в варианте размещения базы не на локалхост, мы имеем два значения времени.

Человек спросил, как сделать так, чтобы сохранял время автоматически, а вы его агитируете делать вручную и заранее неправильно
 
Я может не совсем понял вашу задачу Вы пытаетесь сделать часовые пояса для каждого пользователя в зависимости от его место положения тогда:

$razn = 3;// для Москвы
echo gmdate("H:i:s",time()+($razn*3600));

Посмотрите еще: Для просмотра ссылки Войди или Зарегистрируйся

если просто добавлять дату тогда так:

для поля datetime (int) в базе
mysql_query("INSERT INTO table SET `id`='".$id."',..... `datetime`='".time()."', .....");

для поля datetime (datetime) в базе

mysql_query("INSERT INTO table SET `id`='".$id."',..... `datetime`='".date('Y-m-d H:i:s')."', .....");

если нужно автоматически добавлять тогда:
Для просмотра ссылки Войди или Зарегистрируйся
 
...Вы пытаетесь сделать часовые пояса для каждого пользователя в зависимости от его место положения...
Если так, то задача изначально неправильно поставлена... при общении игроков с разными часовыми поясами возникнет путаница... Записывать всегда нужно время сервера, а вот выводить его пользователю уже опираясь на часовой пояс пользователя...
 
Если так, то задача изначально неправильно поставлена... при общении игроков с разными часовыми поясами возникнет путаница... Записывать всегда нужно время сервера, а вот выводить его пользователю уже опираясь на часовой пояс пользователя...
При наличии прямых рук никакой путаницы не возникнет.
Время сервера к данным никак не относится, особенно, часовой пояс, установленный на сервере.

MySQL прекрасно работает с часовыми поясами.
В начале генерации страницы пользователю выполняешь sql запрос:
Код:
set timezone = 'MSK'
или
Код:
set timezone = 'GMT'
или любой другой пояс,
и пользователь увидит все времена в своем часовом поясе и без плясок с бубном.
 
Назад
Сверху