Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2008, 19:05   #1
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,603
По умолчанию Как хранить/изымать дату/время в базах данных mysql?

Здравствуйте уважаемые.
Такой вопрос. Как правильно хранить/изымать дату/время в базах данных 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.
Назревает извечный вопрос - что делать? Спасибо всем кто откликнется.

Последний раз редактировалось Gorychev; 23.05.2008 в 20:08.
Gorychev вне форума Ответить с цитированием
Старый 24.05.2008, 00:29   #2
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Потому что дату в базе лучше всего хранить в UNIX TIMESTAMP. А потом её расшифровывать через date()
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 24.05.2008, 16:13   #3
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,603
По умолчанию

Если можно пару строк кода для примера
Gorychev вне форума Ответить с цитированием
Старый 24.05.2008, 18:36   #4
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

PHP код:
<?php
$query 
"INSERT INTO $f_load (name, mess, date) VALUES('$name', '$message', time())"
$result mysql_query($query) or die ("Error: " .mysql_error());
?>
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 24.05.2008, 19:06   #5
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,603
По умолчанию

Неа не работает, выдает ошибку синтаксиса. А функция time() возвращает значение разве не с типом Time? Столбец date имеет тип DateTime это из кода видно.
Gorychev вне форума Ответить с цитированием
Старый 25.05.2008, 02:26   #6
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Я храню все даты в UNIX TIMESTAMP.
http://www.php.net/manual/ru/function.time.php
Делаю поле INT и храню там циферки...

А ошибка синтаксиса - time() нужно вынести за кавычки.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 25.05.2008, 12:04   #7
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,603
По умолчанию

Не, мене нужен DATATIME.
Можно б и через строки:
Код:
unction get_date()//**********
{
$day = date("d");
$mounth = date("m");
$year= date("Y");
$res = $year.$mounth.$day;
return $res;
}
function get_time()//*********
{
$hour= date("H");
$minute = date("i");
$second = date("s");
$res = $hour.$minute.$second;
return $res;
}
но охота по науке.
Блин, типовая проблемка и никто ничего конкретного не может подсказать.
Я уже запарился в инете искать.
Gorychev вне форума Ответить с цитированием
Старый 25.05.2008, 14:30   #8
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Если бы ты действительно искал в Интернете - то нашёл бы вот это, и все твои вопросы решились бы.
http://www.mysql.ru/docs/man/Date_and_time_types.html
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 25.05.2008, 14:35   #9
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,603
По умолчанию

Поменял

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

на

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

почитал понял
Заработало.
Gorychev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
php внесение в базу данных mysql solution PHP 17 27.07.2011 14:01
запрос который бы подсчитывал количество полных лет начиная с того года который указан в данных мне базах PereCCC Помощь студентам 8 15.05.2008 16:24
Выбор данных из таблицы Mysql в кодировке Utf - 8 OSKiller PHP 4 26.01.2008 10:04
Как ввести системную дату и время с помощью TEdit? Bill Gates Общие вопросы Delphi 4 03.01.2008 12:06
как выгрузить базу данных из MySQL в Access??? TRANE Помощь студентам 5 03.12.2007 13:22