Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как хранить/изымать дату/время в базах данных mysq 
V
    Опции темы
Лиходей
Дата 25.5.2008, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 25.5.2008

Репутация: нет
Всего: нет



Здравствуйте уважаемые.
Такой вопрос. Как правильно хранить/изымать дату/время в базах данных mysql?
пишу следующее
Код


# {  /*добавлние данных*/ 
#      $dt = date('d m Y H i'); 
#      $query = "INSERT INTO $f_load (name, mess, date) VALUES('$name', '$message', '$dt')"; 
#      $result = mysql_query($query) or die ("Error: " .mysql_error()); 
#      }  
#   
#      /*Отображение данных*/  
#      $query = "select name, mess, DATE_FORMAT(date,'%d %m %Y %H %i') as date_ from $f_load";  
#      $result = mysql_query($query) or die ("Error: " .mysql_error());  
#   
#      echo"<table border=1>";  
#      while ($row = mysql_fetch_array ($result))  
#      { 
#        echo "<tr>"; 
#        echo "<td>", $row['name'],"</td> <td>", $row['mess'], "</td>"; 
#         echo "<td>", $row['date_'],"</td>"; 
#        echo "<tr>"; 
#      }  
#      echo "</table>"; 

В результате вместо 23 05 2008 19 06 получаю 00 00 0000 00 00.
Назревает извечный вопрос - что делать? Спасибо всем кто откликнется.
PM MAIL   Вверх
ruslankm
Дата 25.5.2008, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 24.5.2008

Репутация: нет
Всего: нет



Формат хранения данных в мускуле гггг-мм-дд
Поэтому необходимо :
Код

.......
 $dt = date('Y-m-d');
.......


или

Код

.......
$dt = date('Y-m-d H:i');
.......


Это сообщение отредактировал(а) ruslankm - 25.5.2008, 12:38
PM MAIL   Вверх
Feldmarschall
Дата 25.5.2008, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 1
Всего: 32



а посмотреть в документации формат поля, которым ты собрался пользоваться, нельзя было?
http://www.mysql.ru/docs/man/Date_and_time_types.html

Это сообщение отредактировал(а) Feldmarschall - 25.5.2008, 12:45
PM   Вверх
americanets
Дата 25.5.2008, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 2
Всего: 12



правильно хранить в предназначены для этого полях с тапами TIMESTAMP , DATE и т д

Это сообщение отредактировал(а) americanets - 25.5.2008, 12:49


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
Feldmarschall
Дата 25.5.2008, 12:47 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 1
Всего: 32



americanets, а ссылку на TIMESTAMP-то ты зачем сюда приплел? Весьма специфичный тип поля, и далеко не всегда нужный. А наоборот - очень часто втыкаемый туда, где не надо.

PM   Вверх
americanets
Дата 25.5.2008, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 2
Всего: 12



убрал, тут ты прав. 
PS
если не сложно поясни о не правильном использовании TIMESTAMP

Это сообщение отредактировал(а) americanets - 25.5.2008, 12:53


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
Feldmarschall
Дата 25.5.2008, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 1
Всего: 32



Просто если уж давать ссылку, то явно на DATETIME, который нужен автору.

а про timestamp надо знать одно очень важное правило - это время не СОЗДАНИЯ записи, а ИЗМЕНЕНИЯ.
при этом следует учитывать, что такие массовые операции, как изменение таблицы тоже меняют это время. в результате вместо даты создания мы можем получить одинаковую дату для всех записей. 
Да, я знаю, что в пятёрке это несчастное поле совсем перекорежили. Но у кого есть сейчас та пятёрка? Но, главное - есть же  datetime
PM   Вверх
americanets
Дата 25.5.2008, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 2
Всего: 12



Спасибо, буду знать 


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
Лиходей
Дата 25.5.2008, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 25.5.2008

Репутация: нет
Всего: нет



Поменял 
Код

 $dt = date('d m Y H i'); 

на
Код

$dt = date('Y-m-d H:i');


Заработало. Еhank you very much ruslankm!
Чего мне только на других форумах не советовали....
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0481 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.