Re: bigint and unix time

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: Raw Message | Whole Thread | 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

In response to

Responses

Browse pgsql-sql by date

  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