Use trunc instead of round.
Also take a look at ceil and floor functions
>>> Aarni Ruuhimäki <aarni@kymi.com> 2007-02-08 11:01 >>>
On Thursday 08 February 2007 00:09, you wrote:
> select extract(epoch from (timestamp '2007-02-07 16:24:00' - timestamp
> '2007-02-05 13:00:01'))/60 as minutes;
>
> minutes
> ------------------
> 3083.98333333333
> (1 row)
>
> select round(extract(epoch from (timestamp '2007-02-07 16:24:00' -
> timestamp '2007-02-05 13:00:01'))/60) as minutes;
>
> minutes
> ---------
> 3084
> (1 row)
Hi Guys,
Charming !
Furher still, I would only want full minutes.
select extract(epoch from (SELECT SUM(stop_date_time - start_date_time) FROM
work_times WHERE user_id = 10 AND start_date_time >= '2007-01-01' AND
stop_date_time <= '2007-02-28')/60) as mins;
mins
-------------
3728.733333
(1 row)
select convert_interval((SELECT SUM(stop_date_time - start_date_time) FROM
work_times WHERE user_id = 10 AND start_date_time >= '2007-01-01' AND
stop_date_time <= '2007-02-28'),'minutes') as minutes;
minutes
--------------------------
3728.73333333333 minutes
(1 row)
select round(extract(epoch from (SELECT SUM(stop_date_time - start_date_time)
FROM work_times WHERE user_id = 10))/60) as mins;
mins
------
3729
(1 row)
So instead of rounding up to 3729 the result would have to be 'stripped' to
3728 ?
Thanks,
--
Aarni Ruuhimäki
---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match