El sáb., 19 de may. de 2018 9:32 AM, Hellmuth Vargas <hiv...@gmail.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 <mcanc...@hotmail.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 <hiv...@gmail.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<mcanc...@hotmail.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. >> >> >>