Thread: Date Interval
Hi, I hale a problem with counting interwal and I can't find what to do with this. I have two fields in the table: Column | Type | Modifiers -----------------+---------+-----------date_in | date |interwal_months | numeric | -----------------+---------+----------- Query SELECT date_in + INTERVAL '3 MONTH' FROM any_table works fine of course. However, how to do something like that? SELECT date_in + INTERVAL ' interwal_months MONTH' FROM any_table I hope I'm just blind.. ;-) Thanks for any help. MK
Magdalena Komorowska wrote: > Hi, > I hale a problem with counting interwal and I can't find what to do with > this. > I have two fields in the table: > Column | Type | Modifiers > -----------------+---------+----------- > date_in | date | > interwal_months | numeric | > -----------------+---------+----------- > > Query > SELECT date_in + INTERVAL '3 MONTH' FROM any_table > works fine of course. > > However, how to do something like that? > SELECT date_in + INTERVAL ' interwal_months MONTH' FROM any_table How about this? test=> CREATE TABLE test(x TEXT);CREATE TABLEtest=> INSERT INTO test VALUES ('3');INSERT 0 1test=> SELECT current_timestamp+ cast(x || ' months' AS INTERVAL) FROMtest; ?column?------------------------------- 2006-03-0611:53:05.574279-05(1 row) -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania19073
On Tue, Dec 06, 2005 at 11:54:05AM -0500, Bruce Momjian wrote: > test=> SELECT current_timestamp + cast(x || ' months' AS INTERVAL) FROM > test; > ?column? > ------------------------------- > 2006-03-06 11:53:05.574279-05 > (1 row) Or another way: test=> CREATE TABLE test (x numeric); CREATE TABLE test=> INSERT INTO test VALUES (3); INSERT 0 1 test=> SELECT current_timestamp + x * interval'1 month' FROM test; ?column? -------------------------------2006-03-06 12:07:48.112765-05 (1 row) -- Michael Fuhr
In article <200512061654.jB6Gs5d14178@candle.pha.pa.us>, Bruce Momjian <pgman@candle.pha.pa.us> writes: > Magdalena Komorowska wrote: >> Hi, >> I hale a problem with counting interwal and I can't find what to do with >> this. >> I have two fields in the table: >> Column | Type | Modifiers >> -----------------+---------+----------- >> date_in | date | >> interwal_months | numeric | >> -----------------+---------+----------- >> >> Query >> SELECT date_in + INTERVAL '3 MONTH' FROM any_table >> works fine of course. >> >> However, how to do something like that? >> SELECT date_in + INTERVAL ' interwal_months MONTH' FROM any_table > How about this? > test=> CREATE TABLE test(x TEXT); > CREATE TABLE > test=> INSERT INTO test VALUES ('3'); > INSERT 0 1 > test=> SELECT current_timestamp + cast(x || ' months' AS INTERVAL) FROM > test; > ?column? > ------------------------------- > 2006-03-06 11:53:05.574279-05 > (1 row) Since Magdalena doesn't store the number of months in a string, the following might be more convenient: SELECT date_in + interwal_months * INTERVAL '1 MONTH' FROM any_table
It works great, very nice method :-) thanks a lot! MK