time interval format srting
Hello,
I've been searching the docs on a simple way to convert a time
_duration_ in seconds to the format dd:hh:mm:ss, but I can't find it.
90061 --> 1d 1h 1m 1s
(90061=24*3600+3600+60+1)
any ideas ?
I've been using to_char and to_timestamp to format dates/timestamps...
but this is diferent... I want to format time intervals, durations..
cheers
Joao
On Tue, Nov 4, 2008 at 10:06 AM, Joao Ferreira gmail
<joao.miguel.c.ferreira@gmail.com> wrote:
Hello,
I've been searching the docs on a simple way to convert a time
_duration_ in seconds to the format dd:hh:mm:ss, but I can't find it.90061 --> 1d 1h 1m 1s
(90061=24*3600+3600+60+1)
select number*interval '1 sec';
On Tue, Nov 4, 2008 at 10:53 AM, Scott Marlowe <scott.marlowe@gmail.com> wrote:
On Tue, Nov 4, 2008 at 10:06 AM, Joao Ferreira gmail
<joao.miguel.c.ferreira@gmail.com> wrote:Hello,
I've been searching the docs on a simple way to convert a time
_duration_ in seconds to the format dd:hh:mm:ss, but I can't find it.90061 --> 1d 1h 1m 1s
(90061=24*3600+3600+60+1)
select number*interval '1 sec';
OK, that just gives hours:minutes:seconds. You can add and subtract
the same timestamp to get something like an interval
select ((9084000*interval '1 sec')+timestamp '2008-01-01')-timestamp
'2008-01-01';
On Tue, Nov 04, 2008 at 05:06:37PM +0000, Joao Ferreira gmail wrote:
I've been searching the docs on a simple way to convert a time
_duration_ in seconds to the format dd:hh:mm:ss, but I can't find it.90061 --> 1d 1h 1m 1s
(90061=24*3600+3600+60+1)
any ideas ?
I've been using to_char and to_timestamp to format dates/timestamps...
but this is diferent... I want to format time intervals, durations..
How about doing:
SELECT justify_interval(90061 * '1 second'::INTERVAL);
The reason PG makes it a bit difficult is because of things like
daylight savings means that a day can be longer, or shorter, than 24
hours.
Sam
am Tue, dem 04.11.2008, um 17:06:37 +0000 mailte Joao Ferreira gmail folgendes:
Hello,
I've been searching the docs on a simple way to convert a time
_duration_ in seconds to the format dd:hh:mm:ss, but I can't find it.90061 --> 1d 1h 1m 1s
(90061=24*3600+3600+60+1)
any ideas ?
Something like this?
test=*# select (90061 / (24*3600))::text || ' days ' ||
to_char('3661'::interval, 'hh h mi m ss s')::text;
?column?
-----------------------
1 days 01 h 01 m 01 s
(1 Zeile)
Andreas
--
Andreas Kretschmer
Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header)
GnuPG-ID: 0x3FFF606C, privat 0x7F4584DA http://wwwkeys.de.pgp.net
Sam Mason <sam@samason.me.uk> schrieb:
On Tue, Nov 04, 2008 at 05:06:37PM +0000, Joao Ferreira gmail wrote:
I've been searching the docs on a simple way to convert a time
_duration_ in seconds to the format dd:hh:mm:ss, but I can't find it.90061 --> 1d 1h 1m 1s
(90061=24*3600+3600+60+1)
any ideas ?
I've been using to_char and to_timestamp to format dates/timestamps...
but this is diferent... I want to format time intervals, durations..How about doing:
SELECT justify_interval(90061 * '1 second'::INTERVAL);
Nice, didn't know this function.
Andreas
--
Really, I'm not out to destroy Microsoft. That will just be a completely
unintentional side effect. (Linus Torvalds)
"If I was god, I would recompile penguin with --enable-fly." (unknown)
Kaufbach, Saxony, Germany, Europe. N 51.05082�, E 13.56889�
Andreas Kretschmer replied:
I wrote:
How about doing:
SELECT justify_interval(90061 * '1 second'::INTERVAL);
Nice, didn't know this function.
Yup, PG does everything! Not sure when I discovered it; also not sure
if I've ever had to use it in anger before. I am, however, slightly
embarrassed that I used the ugly form of interval literals, it looks
prettier to me as:
SELECT justify_interval(90061 * INTERVAL '1 second');
Ah well!
Sam