Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Хранение даты в базе
 
 автор: Jeka   (17.02.2005 в 21:22)   письмо автору
 
 

Уважаемый Олл, возникла проблема с хранением даты $nowdata = date("d-m-y H:i:s") в базе MySQL. Тип определен как datetime. Как ни странно, но записывает он все нули. Подскажите, плз, как можно это сделать красиво по-человечески,т.к. в голову ничего другого пока не приходит. Спасибо.

   
 
 автор: cheops   (17.02.2005 в 21:37)   письмо автору
 
   для: Jeka   (17.02.2005 в 21:22)
 

Хм... не очень понятна проблема, чем не подходит тип datetime

   
 
 автор: Artemy   (17.02.2005 в 21:43)   письмо автору
 
   для: Jeka   (17.02.2005 в 21:22)
 

Блин cheops какой быстрый!

В этом случае надо воспользоваться встроенной функцией MySQL - NOW()
Пример, если у столбца в базе стоит параметр DATETIME:
<?
$query 
mysql_query(INSERT INTO table VALUES('''$name'NOW()));
?>

Если же Вы хотети воспользоваться функцией date(), тогда нужно изменить параметр DATETIME на CHAR!

   
 
 автор: Jeka   (18.02.2005 в 01:24)   письмо автору
 
   для: Artemy   (17.02.2005 в 21:43)
 

То есть пользоваться функцией date() да при том так, чтобы можно было потом производить операции с типами datetime, нельзя? Может как-то можно по-другому? А то вариант с char явно не подходит, а с now() есть некоторые неприятности. Благодарю за ответ.

   
 
 автор: cheops   (18.02.2005 в 12:01)   письмо автору
 
   для: Jeka   (18.02.2005 в 01:24)
 

С типами datetime можно производить любые операции - вычитания, сложения, форматного вывода, мы просто не можем понять, что требуется. Может вы приведёте примерчик: на вход поступает то-то, должно выходить то-то, а на самом деле происходит так?

   
 
 автор: Jeka   (18.02.2005 в 14:47)   письмо автору
 
   для: cheops   (18.02.2005 в 12:01)
 

Спасибо за советы. Можно обойтись и тем, что Вы предложили, а сейчас просто интересно: возможно ли в принципе хранить значение пхп-функции date() в базе MySQL в формате datetime?

   
 
 автор: cheops   (18.02.2005 в 15:54)   письмо автору
 
   для: Jeka   (18.02.2005 в 14:47)
 

Дело в том, что функция date - это форматирующая функция, которая возвращает время в виде строки. Либо текущее, если ей не передаётся параметры, либо того, которое ей указывается - она может принимать время в виде числа секунд прошедших с первого января 1970 года. В виде секунд хранит время и база данных - это очень удобно при сложении и вычитании - не нужны никакие преобразования. Можно хранить время в виде строки например в CHAR или TEXT, но это не удобно и занимает больше места... Кроме того, базы данных обладают большим числом временных типов, которые различаются только размером (внутреннее представление - секунды). Поэтому, вы можете передавать базе данных время, отформатировав его в понятный базе данных формат
<?php 
  
echo date("Y-m-d G:i:s",time()); 
?>

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1571
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=232
При выводе из базы данных вы можете так же использовать встроенную функцию DATE_FORMAT
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=1419
Преобразовать тектовую дату в секунды можно при помощи решения, представленного в последнем посте темы
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=959

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования