|
|
|
|
|
для: cheops
(16.11.2006 в 13:50)
| | спасибо большое )) | |
|
|
|
|
|
|
|
для: Trianon
(16.11.2006 в 14:01)
| | Функция точно в четвёртой версии реализована, возможно раньше, так как в манулале 3.23, 4.0, 4.1 она не сопровождается упоминанием версии введения (сейчас тактика такая у MySQL AB, если функция реализгована в 3.23, 4.0, 4.1 то об версии введения сообщается в этом мануале, если в 5.0, то в мануале 5.0, если в 5.1, то в мануале 5.1).
PS В старых русских мануалах, которые создавались на базе 4.0 сортировка не правильная, поэтому можно пропустить функцию, тут лучше на английский мануал ориентироваться (как в прочем и в PHP). | |
|
|
|
|
|
|
|
для: cheops
(16.11.2006 в 12:20)
| | TO_DAYS() здесь всяко предпочтительней.
Однако в русском мануале я её не нашел. С какой версии она реализована? | |
|
|
|
|
|
|
|
для: AlexHog
(16.11.2006 в 13:45)
| | Да, для этого следует воспользоваться функцией mysql_result()
<?php
$query = "SELECT unix_timestamp(now( ))";
$ath = mysql_query($query);
if(!$ath) exit (mysql_error());
echo mysql_result($ath, 0);
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(16.11.2006 в 10:21)
| | спасибо )) | |
|
|
|
|
|
|
|
для: cheops
(16.11.2006 в 12:20)
| | спасибо, вроде получается.
Еще два вопроса, если можно:
. можно ли записать такой скрипт короче? обязателен ли цикл while, если запросили не выборку из таблицы, а один-единственный элемент?
$query = "SELECT unix_timestamp(now( ))";
$ath = mysql_query($query);
if(!$ath) exit (mysql_error());
while ($row = mysql_fetch_row($ath))
{
echo $row[0] . "<br>";
}
|
. почему время, получаемое таким образом, на 53 секунды расходится со временем, которое выдает команда "echo time();"? то есть не в моем конкретном случае, а вообще - как такое в принципе возможно? сервер-то один и тот же? | |
|
|
|
|
|
|
|
для: AlexHog
(16.11.2006 в 10:02)
| | subdate() не применяется к двум датам, в этом случае функция возвращает неопределённый результат, область деятельности функции вычитание из даты интрервала, обычно дату предварительно переводят в секунды при помощи UNIX_TIMESTAMP(), как написал Trianon, или в дни при помощи функции TO_DAYS(). | |
|
|
|
|
|
|
|
для: AlexHog
(16.11.2006 в 10:02)
| | проще всего будет преобразовать даты в линейный формат (UNIX_TIMESTAMP() ), в нем их вычесть и привести к нужной единице измерения.
Как минимум, пока даты находятся в диапазоне представления unixtime. | |
|
|
|
|
|
|
| Здравствуйте.
Как правильно вычислять разницу между двумя датами?
Мне нужно узнать, сколько дней человек зарегистрирован на сайте. Функция работает, когда я задаю интервал в некоторое количество дней, то есть получает текущую дату минус сколько-то дней, и результат можно сравнить с датой извлеченной из БД; но когда я делаю например SELECT subdate( "2006-11-16", "2006-11-15" ) ; - в ответ получаю 2001-05-20. Почему такой странный результат?
Есть книга Ульмана "Руководство по изучению Mysql" - там этот момент вообще не рассматривается... | |
|
|
|
|