Re: Consulta sobre fechas TimeStamp

From: Hellmuth Vargas <hivs77(at)gmail(dot)com>
To: MKHotmail <mcanchas(at)hotmail(dot)com>
Cc: Lista Postgres ES <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Consulta sobre fechas TimeStamp
Date: 2018-05-19 14:40:33
Message-ID: CAN3Qy4qAhHhK=uciR4GidsC=7==kwar+zBvYz5kriCCDHubX-w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El sáb., 19 de may. de 2018 9:32 AM, Hellmuth Vargas <hivs77(at)gmail(dot)com>
escribió:

> Hola lista
>
> Por regla general no se debe confiar en en casteo implícito de datos,
> como buena práctica debe indicarse plenamente los tipos de datos para su
> comparación (promoviendo al tipo de dato de la columna a comparar). Es más,
> si somos rigurosos la expresión deberia ser:
>
>
> Select * from mitabla where Fecha_TIMESTAMP between
> to_timestamp('2018-05-18 00:00:00','YYYY-MM-DD HH24:MI:SS')
> and cast('2018-05-19 00:00:00', 'YYYY-MM-DD HH24:MI:SS')
>
> Ahora bien, el cierto que el índice sobre funciones también es eficaz,
> pero debe considerarse que en la inserción y actualización tiene una
> pequeña penalidad adicional por el hecho que debe calcularse la función
> para el registro a almacenar en el índice y que todas las consultas que se
> hagan sobre el campo deberían aplicar la función para aprovechar el
> mismo... Entonces si siempre se filtra como DATE pues la columna no se
> debió definir como TIMESTAMP sino directamente como DATE.*
>

* eso si solo almaceno datos DATE dentro del TIMESTAMP

>
> El vie., 18 de may. de 2018 5:01 PM, Micky Khan <mcanchas(at)hotmail(dot)com>
> escribió:
>
>> Y cual es la diferencia en hacerlo asi :
>>
>>
>> Select * from mitabla where Fecha_TIMESTAMP between '2018-05-18' and
>> '2018-05-19'
>>
>> El resultado que me arroja es el mismo...que los otros que me pasaste.
>>
>>
>>
>>
>>
>>
>>
>> ------------------------------
>> *De:* Hellmuth Vargas <hivs77(at)gmail(dot)com>
>> *Enviado:* viernes, 18 de mayo de 2018 19:32
>> *Para:* Micky Khan
>> *Cc:* FORO POSTGRES
>> *Asunto:* Re: Consulta sobre fechas TimeStamp
>>
>> Hola Lista
>>
>>
>> Tenemos dos maneras básicas de hacer una consulta que involucra timestamp
>> contra un date:
>>
>> 1. date(timestamp)
>>
>> Select * from mitabla where date(Fecha_TIMESTAMP) =
>> cast('2018-05-18' as date)
>>
>> Para tablas con gran cantidad de registros implica un indice sobre
>> date(Fecha_TIMESTAMP)
>>
>> 2. between, mi preferido
>>
>> Select * from mitabla where Fecha_TIMESTAMP between
>> cast('2018-05-18' as timestamp) and cast('2018-05-18' as timestamp)+
>> cast('1 day' as interval)
>>
>> para tablas con gran cantidad de registros implica un indice
>> sobre Fecha_TIMESTAMP
>>
>>
>> Ahora bien, sin mas informacion como que tan grande es las tabla y como
>> están distribuidos los datos, para poder sugerir un particionamiento sobre
>> el campo Fecha_TIMESTAMP por ejemplo no podría aportar mucho mas...
>>
>>
>>
>>
>>
>> El 18 de mayo de 2018, 13:37, Micky Khan<mcanchas(at)hotmail(dot)com> escribió:
>>
>> Buenas.
>>
>>
>> Una consulta; como es la manera correcta de tal manera que sea lo mas
>> rápida posible de ejecutar una consulta
>>
>>
>> Select * from mitabla where Fecha_TIMESTAMP = '2018-05-18'
>>
>>
>>
>> Mi campo fecha a consultar es de tipo TIMESTAMP y los datos que se envian
>> para la consulta es de tipo DATE.
>>
>>
>> Gracias por vuestra ayuda.
>>
>>
>>
>>
>>
>>
>> --
>> Cordialmente,
>>
>> Ing. Hellmuth I. Vargas S.
>>
>>
>>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Micky Khan 2018-05-22 20:08:02 Function para borrar
Previous Message Hellmuth Vargas 2018-05-19 14:32:54 Re: Consulta sobre fechas TimeStamp