Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

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

 

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

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

тема: абсолютное время -> БД
 
 автор: Mootch   (13.08.2005 в 18:16)   письмо автору
 
 

как записать абсолютное время, возвращаемое процедурой "time()", записать в БД ? какого типа должен быть столбец?

   
 
 автор: Евгений Петров   (13.08.2005 в 18:22)   письмо автору
 
   для: Mootch   (13.08.2005 в 18:16)
 

тип int его тебе хватит до 2031 года помоему. :)

   
 
 автор: Mootch   (13.08.2005 в 19:11)   письмо автору
 
   для: Евгений Петров   (13.08.2005 в 18:22)
 

в таком случае какой размер столбца должен быть? И для чего тогда всякие timestamp нужны ?

   
 
 автор: cheops   (13.08.2005 в 22:45)   письмо автору
 
   для: Mootch   (13.08.2005 в 19:11)
 

Размер INT не имеет значения - он определяется самим типом, цифры в круглых скобках не влияют на размер числа - они влияют на число позиций отводимых под тип при выводе.

timestamp лучше не трогайте без лишней надобности - он немного поменяется в MySQL 4.1. Вообще timestamp предназначен для того, чтобы временное значение автоматически изменялось при изменении поля с помощью оператора UPDATE. В MySQL 4.0 в нём действительно время по умолчанию представлено в секундах, а вот в MySQL 4.1 будет как в datetime "YYYY-MM-DD hh:mm:ss".

Вообще лучше хранить время в datetime - его можно складывать, вычитать, а при SELECT-запросе преобразовывать в нужный формат - хоть в строку, хоть в число секунд прошедших с 1 января 1970 года. Для этого в MySQL имеется большое число встроенных функций.

   
 
 автор: cheops   (13.08.2005 в 18:32)   письмо автору
 
   для: Mootch   (13.08.2005 в 18:16)
 

Для этого, можно использовать обычный тип INT

PS Вопросы, посвящённые базам данных лучше сразу задавать в разделе http://www.softtime.ru/forum/index.php?id_forum=3

   
 
 автор: Mootch   (14.08.2005 в 00:33)   письмо автору
 
   для: Mootch   (13.08.2005 в 18:16)
 

Продолжаю тему времени....
почему может не работать вот этот код?


$param="SELECT WEEKDAY(dat) FROM $dbname";    
$result = mysql_query($param,$link);
while ($a_row = mysql_fetch_array($result))
{
 print $a_row[dat];
 
}



.....

Поискал по форуму ...

SELECT DATE_FORMAT(dat,'%b %d, %Y') AS dat FROM tbl

вот так правильно. А кто объяснит почему нельзя без "AS dat"?

   
 
 автор: cheops   (14.08.2005 в 14:07)   письмо автору
 
   для: Mootch   (14.08.2005 в 00:33)
 

1) Модифицируйте его следующим образом
<?php
  $param
="SELECT WEEKDAY(dat) FROM $dbname";     
  
$result mysql_query($param,$link); 
  if(!
$result) exit(mysql_error());
  while (
$a_row mysql_fetch_array($result)) 
  { 
    print 
$a_row[dat]; 
  }
?>

Что выводится в окно браузера?

2) Можно и без AS dat, только в результирующем ассоциативном массиве вам придётся обращаться к столбцу следующим образом
<?php
  
echo $a_row['DATE_FORMAT(dat,'%%d, %Y')']
?>

а это не удобно и можно легко ошибиться... кроме того, код не читаемый совершенно, лучше переименовать это столбец при помощи конструкции AS.

   
 
 автор: Mootch   (14.08.2005 в 14:25)   письмо автору
 
   для: cheops   (14.08.2005 в 14:07)
 

ничего не выводет

<?php 
  
echo $a_row['DATE_FORMAT(dat,'%%d, %Y')'
?>


Работает. Спасибо :)

   
 
 автор: cheops   (14.08.2005 в 23:49)   письмо автору
 
   для: Mootch   (14.08.2005 в 14:25)
 

Я просто не глядя написал :))) так-то наверное нужно
<?php
  
echo $a_row["DATE_FORMAT(dat,'%b %d, %Y')"]
?>

Чтобы проблем с кавычками не было...

   
Rambler's Top100
вверх

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