Обсуждение: Do cast affects index usage?

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

Do cast affects index usage?

От
"Anibal David Acosta"
Дата:

I have a table with a column of type timestamp with time zone, this column has an index

 

If I do a select like this

 

select * from mytable where cast(my_date as timestamp without time zone) > '2012-10-12 20:00:00'

 

this query will use the index over the my_date column?

 

Thanks

 

Re: Do cast affects index usage?

От
Scott Marlowe
Дата:
On Fri, Oct 12, 2012 at 2:05 PM, Anibal David Acosta <aa@devshock.com> wrote:
> I have a table with a column of type timestamp with time zone, this column
> has an index
>
> If I do a select like this
>
> select * from mytable where cast(my_date as timestamp without time zone) >
> '2012-10-12 20:00:00'
>
> this query will use the index over the my_date column?

No.  but it will use a functional index:

create index yada on blah (cast(my_date as timestaqmp without time zone));


Re: Do cast affects index usage?

От
Tom Lane
Дата:
"Anibal David Acosta" <aa@devshock.com> writes:
> I have a table with a column of type timestamp with time zone, this column
> has an index

> If I do a select like this
> select * from mytable where cast(my_date as timestamp without time zone) >
> '2012-10-12 20:00:00'
> this query will use the index over the my_date column?

No.  The cast seems rather pointless though ...

            regards, tom lane


Re: Do cast affects index usage?

От
"Anibal David Acosta"
Дата:
Because I need to get all rows where datetime is greater than (for example)
'2012-10-10 00:00:00' but ignoring timezone, so basically I need to truncate
timezone
This can be done by converting to timestamp without timezone.



-----Mensaje original-----
De: Tom Lane [mailto:tgl@sss.pgh.pa.us]
Enviado el: viernes, 12 de octubre de 2012 05:39 p.m.
Para: Anibal David Acosta
CC: pgsql-performance@postgresql.org
Asunto: Re: [PERFORM] Do cast affects index usage?

"Anibal David Acosta" <aa@devshock.com> writes:
> I have a table with a column of type timestamp with time zone, this
> column has an index

> If I do a select like this
> select * from mytable where cast(my_date as timestamp without time
> zone) >
> '2012-10-12 20:00:00'
> this query will use the index over the my_date column?

No.  The cast seems rather pointless though ...

            regards, tom lane



Re: Do cast affects index usage?

От
Tom Lane
Дата:
"Anibal David Acosta" <aa@devshock.com> writes:
> Because I need to get all rows where datetime is greater than (for example)
> '2012-10-10 00:00:00' but ignoring timezone, so basically I need to truncate
> timezone
> This can be done by converting to timestamp without timezone.

[ shrug... ]  It can also be done without that.  Whatever your cutoff
time is can be expressed as a timestamp *with* tz.

            regards, tom lane