|
|
|
|
|
для: Binura
(20.07.2007 в 20:43)
| | возможно. Но лучше на php. | |
|
|
|
|
|
|
|
для: Trianon
(20.07.2007 в 20:28)
| | все работает...
но хотелось бы еще
1) убрать секунды
2) если день и часы равны 0 то их не выводить...
это возможно? =) | |
|
|
|
|
|
|
|
для: Binura
(20.07.2007 в 20:23)
| | извините. Ошметки от проверочных действий вкрались.
$sql = "
SELECT
online.*,
CONCAT(
((UNIX_TIMESTAMP(newtime)-UNIX_TIMESTAMP(oldtime)) DIV 86400),' ',
SEC_TO_TIME((UNIX_TIMESTAMP(newtime)-UNIX_TIMESTAMP(oldtime)) MOD 86400)) as dif
FROM online
";
|
| |
|
|
|
|
|
|
|
для: Binura
(20.07.2007 в 20:18)
| |
$sql = "
SELECT
tbl.*,
CONCAT(
((UNIX_TIMESTAMP(newtime)-UNIX_TIMESTAMP(oldtime)) DIV 86400),' ',
SEC_TO_TIME((UNIX_TIMESTAMP()-UNIX_TIMESTAMP(stamp)) MOD 86400)) as dif
FROM tbl
";
|
что то я не могу такой запрос сделать...
таблица online
oldtime
newtime
как прально сделать запрос? | |
|
|
|
|
|
|
|
для: Trianon
(20.07.2007 в 20:00)
| | тогда можно не использовать
on update CURRENT_TIMESTAMP
=( | |
|
|
|
|
|
|
|
для: Binura
(20.07.2007 в 19:50)
| | присвойте ему значение напрямую.
UPDATE `online`
SET ntime=NOW()
WHERE `id`='$ID'
|
| |
|
|
|
|
|
|
|
для: Trianon
(20.07.2007 в 19:24)
| | вот спасибо... =) пошла тестировать..
но вот еще вопросик, на счет UPDATE...
как сделать?
мне нужно обновить только одно поле, и то это поле
`ntime` TIMESTAMP NOT NULL default '0000-00-00 00:00:00' on update CURRENT_TIMESTAMP ,
т.е. я не обновляю поля, надо чтоб скрипт сам обновил время,
как то так...
UPDATE `online` WHERE `id`='$ID' | |
|
|
|
|
|
|
|
для: Binura
(20.07.2007 в 18:00)
| | Да, забыл сказать. CONCAT (a, b, c, d) это всё равно что в php $a . $b . $c . $d
В конце концов, если Вам не нравится вычислять строку средствами SQL
можете написать функцию перевода.
function human_interval($sec)
{
$dsec = $sec % (24*3600);
$days = ($sec - $dsec)/ (24*3600);
$min = $dsec % 3600;
$hour = ($dsec-$min)/3600;
$sec = $min %60;
$min = ($min-$sec)/60;
return sprintf("%d %02d:%02d:%02d", $days, $hour, $min, $sec);
}
|
и обращаться к ней вместо date | |
|
|
|
|
|
|
|
для: Binura
(20.07.2007 в 18:00)
| | Вы неправильно поняли. Этот оператор формирует всё что Вам нужно.
<?
$sql = "
SELECT
tbl.*,
CONCAT(
((UNIX_TIMESTAMP(newtime)-UNIX_TIMESTAMP(oldtime)) DIV 86400),' ',
SEC_TO_TIME((UNIX_TIMESTAMP()-UNIX_TIMESTAMP(stamp)) MOD 86400)) as dif
FROM tbl
";
$res = mysql_query($sql);
while($row = mysql_fetch_assoc($res))
{
echo '<pre>';
print_r($row);
echo '</pre>';
}
|
| |
|
|
|
|
|
|
|
для: Trianon
(20.07.2007 в 17:25)
| | хорошо....
а как с этим работать? =)
SELECT
CONCAT(
((UNIX_TIMESTAMP(newtime)-UNIX_TIMESTAMP(oldtime)) DIV 86400),' ',
SEC_TO_TIME((UNIX_TIMESTAMP()-UNIX_TIMESTAMP(stamp)) MOD 86400)) as dif
FROM tbl
|
что делает CONCAT()?
я так поняла это только для дней, а как часы и минуты сделать? | |
|
|
|
|