|
|
|
| Подскажите как лучше вычислить разницу между значениями таблицы в формате datetime.
Пришел к такому варианту, но думаю он не совсем верный:
TIMESTAMPDIFF(MINUTE,`control_table`.`audit_end`,`control_table`.`date_audit`)/60 AS `period_audit`,
|
| |
|
|
|
|
|
|
|
для: maxfade
(28.10.2008 в 17:08)
| | В итоге пришел вот к чему:
TIMEDIFF(`control_table`.`audit_end`,`control_table`.`date_audit`) AS `period_audit`,
|
Формат вывода: 00:15:19
Как преобразовать к - деней, часов, минут, секунд ? | |
|
|
|
|
|
|
|
для: maxfade
(28.10.2008 в 17:25)
| | неужели никто не знает :) | |
|
|
|
|
|
|
|
для: maxfade
(30.10.2008 в 15:55)
| | неясно, зачем это делать средствами SQL (а не на уровне приложения) | |
|
|
|
|
|
|
|
для: Trianon
(30.10.2008 в 16:01)
| | Пакажите пример, пожалуйста, как это сделать на уровне приложения. | |
|
|
|
|
|
|
|
для: maxfade
(30.10.2008 в 16:23)
| |
<?
$sql = "SELECT (UNIX_TIMESTAMP(`control_table`.`audit_end`) - UNIX_TIMESTAMP(`control_table`.`date_audit`)) AS diff FROM `control_table`";
$res = mysql_query($sql);
$row = mysql_fetch_assoc($res);
$diff = intval($row['diff']);
$units = array(86400 => ' суток ', 3600 => ' часов ', 60 => ' минут ', 1 => ' секунд');
$s = '';
foreach($units as $lim =>$unit)
{
if($diff < $lim)
continue;
$r = $diff % $lim;
$q = ($diff-$r)/$lim;
$s .= $q . $unit;
$diff = $r;
}
echo $s;
|
| |
|
|
|