| From: | Adrian Klaver <adrian(dot)klaver(at)gmail(dot)com> | 
|---|---|
| To: | Janiv Ratson <yanivra(at)essence-grp(dot)com> | 
| Cc: | "pgsql-sql(at)postgresql(dot)org" <pgsql-sql(at)postgresql(dot)org> | 
| Subject: | Re: bigint and unix time | 
| Date: | 2011-08-15 14:14:07 | 
| Message-ID: | 201108150714.08500.adrian.klaver@gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-sql | 
On Sunday, August 14, 2011 11:23:08 pm Janiv Ratson wrote:
> Hi and thanks,
> If my 'time' column is being saved as bigint: 1287323899000000.
> How do I write a query to check if the 'time' field is greater than now -
> 30 (past 30 days)?
So what you want is not what values are greater than some point 30 days ago 
which is what your previous query asked and answered, but the values between a 
point 30 days ago and today.  The easiest way is to use BETWEEN:
test(5432)aklaver=>\d big_int_test
 Table "public.big_int_test"
 Column |  Type   | Modifiers 
--------+---------+-----------
 bint   | bigint  | 
 rint   | integer | 
test(5432)aklaver=>SELECT * from big_int_test ;
       bint       |    rint    
------------------+------------
 1287323899000000 | 1310799600
test(5432)aklaver=>SELECT 
	bint 
FROM 
	big_int_test 
WHERE 
	bint 
BETWEEN 
	extract(epoch from (date 'now' - integer '30')) 
AND
	extract(epoch from (date 'now'));
 bint 
------
(0 rows)
That being said, if your time values are the order of magnitude shown they will 
not meet the criteria above. Is the time value supposed to be seconds?
> 
> Thanks,
> Janiv,.
-- 
Adrian Klaver
adrian(dot)klaver(at)gmail(dot)com
| From | Date | Subject | |
|---|---|---|---|
| Next Message | David Harel | 2011-08-15 18:53:26 | Re: pgadmin debugger | 
| Previous Message | Andreas Forø Tollefsen | 2011-08-15 13:49:39 | Re: Calculate the ratio |