Обсуждение: datediff function

Поиск
Список
Период
Сортировка

datediff function

От
"Pham, Thinh"
Дата:
Hi everyone,

Does anyone know if postgres has a function similar to what datediff does in
mssql server? I need it to do an update similar to the one below:

"update schedule set purged = 0 where datediff(day, timein, getdate()) > 30"

I know i could pull the whole table down to my machine, modify the data and
then upload it back, but that's really stupid not to mention what it'll do
to network trafic.

Thank you very much for any answer,
Thinh


Re: [SQL] datediff function

От
"tjk@tksoft.com"
Дата:
I think what you are looking for is age()
E.g.

"update schedule set purged = 0 where age('now',dayin) > timespan('30 days'::reltime)"

Presuming a table such as this:

create table schedule (purged int, dayin datetime);

This replaces "day" and "timein" with "dayin."



Troy

>
> Hi everyone,
>
> Does anyone know if postgres has a function similar to what datediff does in
> mssql server? I need it to do an update similar to the one below:
>
> "update schedule set purged = 0 where datediff(day, timein, getdate()) > 30"
>
> I know i could pull the whole table down to my machine, modify the data and
> then upload it back, but that's really stupid not to mention what it'll do
> to network trafic.
>
> Thank you very much for any answer,
> Thinh
>
>

Re: [SQL] datediff function

От
Herouth Maoz
Дата:
At 02:26 +0300 on 17/08/1999, tjk@tksoft.com wrote:


>
> I think what you are looking for is age()
> E.g.
>
> "update schedule set purged = 0 where age('now',dayin) > timespan('30
>days'::reltime)"
>
> Presuming a table such as this:
>
> create table schedule (purged int, dayin datetime);
>
> This replaces "day" and "timein" with "dayin."

Basically correct, but if there is an index on dayin, it won't be used. The
best query to do would be

WHERE dayin > 'now'::datetime - '30 days'::timespan;

Herouth

--
Herouth Maoz, Internet developer.
Open University of Israel - Telem project
http://telem.openu.ac.il/~herutma