|
|
|
| как записать абсолютное время, возвращаемое процедурой "time()", записать в БД ? какого типа должен быть столбец? | |
|
|
|
|
|
|
|
для: Mootch
(13.08.2005 в 18:16)
| | тип int его тебе хватит до 2031 года помоему. :) | |
|
|
|
|
|
|
|
для: Евгений Петров
(13.08.2005 в 18:22)
| | в таком случае какой размер столбца должен быть? И для чего тогда всякие timestamp нужны ? | |
|
|
|
|
|
|
|
для: 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 имеется большое число встроенных функций. | |
|
|
|
|
|
|
|
для: Mootch
(13.08.2005 в 18:16)
| | Для этого, можно использовать обычный тип INT
PS Вопросы, посвящённые базам данных лучше сразу задавать в разделе http://www.softtime.ru/forum/index.php?id_forum=3 | |
|
|
|
|
|
|
|
для: 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"? | |
|
|
|
|
|
|
|
для: 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,'%b %d, %Y')']
?>
|
а это не удобно и можно легко ошибиться... кроме того, код не читаемый совершенно, лучше переименовать это столбец при помощи конструкции AS. | |
|
|
|
|
|
|
|
для: cheops
(14.08.2005 в 14:07)
| | ничего не выводет
<?php
echo $a_row['DATE_FORMAT(dat,'%b %d, %Y')']
?>
|
Работает. Спасибо :) | |
|
|
|
|
|
|
|
для: Mootch
(14.08.2005 в 14:25)
| | Я просто не глядя написал :))) так-то наверное нужно
<?php
echo $a_row["DATE_FORMAT(dat,'%b %d, %Y')"]
?>
|
Чтобы проблем с кавычками не было... | |
|
|
|