Thread: missing something obvious about intervals?
I have a table that has a date field and a "real" field that represents a number of seconds. I want select the date field + the seconds field. Just adding it doesn't work. Casting to interval doesn't work. to_date/to_timestamp don't work. How do I do this?
try select '2005-12-01'::date + (456.5::float || ' seconds')::interval; ?column? ------------------------ 2005-12-01 00:07:36.50 (1 row) ---------- Original Message ----------- From: David Rysdam <drysdam@ll.mit.edu> To: "pg >> Postgres General" <pgsql-general@postgresql.org> Sent: Mon, 12 Dec 2005 13:00:13 -0500 Subject: [GENERAL] missing something obvious about intervals? > I have a table that has a date field and a "real" field that represents > a number of seconds. I want select the date field + the seconds field. > Just adding it doesn't work. Casting to interval doesn't work. > to_date/to_timestamp don't work. How do I do this? > > ---------------------------(end of broadcast)--------------------------- > TIP 3: Have you checked our extensive FAQ? > > http://www.postgresql.org/docs/faq ------- End of Original Message -------
I knew it had to be something like this, but the search space was just too big. Thanks! Jim Buttafuoco wrote: >try > > >select '2005-12-01'::date + (456.5::float || ' seconds')::interval; > ?column? >------------------------ > 2005-12-01 00:07:36.50 >(1 row) > > >---------- Original Message ----------- >From: David Rysdam <drysdam@ll.mit.edu> >To: "pg >> Postgres General" <pgsql-general@postgresql.org> >Sent: Mon, 12 Dec 2005 13:00:13 -0500 >Subject: [GENERAL] missing something obvious about intervals? > > > >>I have a table that has a date field and a "real" field that represents >>a number of seconds. I want select the date field + the seconds field. >>Just adding it doesn't work. Casting to interval doesn't work. >>to_date/to_timestamp don't work. How do I do this? >> >>---------------------------(end of broadcast)--------------------------- >>TIP 3: Have you checked our extensive FAQ? >> >> http://www.postgresql.org/docs/faq >> >> >------- End of Original Message ------- > > > >
On Dec 12 01:00, David Rysdam wrote: > I have a table that has a date field and a "real" field that represents > a number of seconds. I want select the date field + the seconds field. > Just adding it doesn't work. Casting to interval doesn't work. > to_date/to_timestamp don't work. How do I do this? In the "9.9. Date/Time Functions and Operators" chapter of PostgreSQL Documentation, here's the first example of the first page: Operator: + Example : date '2001-09-28' + integer '7' Result : date '2001-10-05' -- "We are the middle children of history, raised by television to believe that someday we'll be millionaires and movie stars and rock stars, but we won't. And we're just learning this fact," Tyler said. "So don't fuck with us."
On Dec 12 08:09, Volkan YAZICI wrote: > On Dec 12 01:00, David Rysdam wrote: > > I have a table that has a date field and a "real" field that represents > > a number of seconds. I want select the date field + the seconds field. > > Just adding it doesn't work. Casting to interval doesn't work. > > to_date/to_timestamp don't work. How do I do this? > > In the "9.9. Date/Time Functions and Operators" chapter of PostgreSQL > Documentation, here's the first example of the first page: > > Operator: + > Example : date '2001-09-28' + integer '7' > Result : date '2001-10-05' Sorry, just after typing send key I realized that I misunderstood your question. Here is a working one: test=> SELECT d + (i || ' seconds')::interval FROM t; Regards. -- "We are the middle children of history, raised by television to believe that someday we'll be millionaires and movie stars and rock stars, but we won't. And we're just learning this fact," Tyler said. "So don't fuck with us."
On Mon, Dec 12, 2005 at 13:04:05 -0500, Jim Buttafuoco <jim@contactbda.com> wrote: > > try > > > select '2005-12-01'::date + (456.5::float || ' seconds')::interval; > ?column? > ------------------------ > 2005-12-01 00:07:36.50 > (1 row) You are better off doing a multiply. Something like: area=> select '2005-12-01'::date + 456.5 * '1 second'::interval; ?column? ------------------------ 2005-12-01 00:07:36.50 (1 row)