web y sql

12/06/2006 - 05:28 por Walter Arce | Informe spam
hola estoy haciendo una busqueda de registros por rango de fecha, fecha1 y
fecha2 , la fecha a comparar esta en el mismo campo que se llama fecha, como
puedo hacer para que la consulta me encuentre el o los registros buscados
sin poner la fecha original una fecha antes del comienzo y la fecha final
una fecha despues del comienzo
ejemplo fechas a buscar :
9/05/2006 hasta 11/05/2006

select * from gastos where fecha1 >= '8/05/2006' and fecha1 <= '12/05/2006'
como ven tengo que poner asi para que me traiga las fechas anteriores
alguien sabe de algo mas eficiente para esto?

Saludos,
Walter
 

Leer las respuestas

#1 Diego Cofré
12/06/2006 - 16:07 | Informe spam
Walter:
Eso sucede porque en realidad la fecha en SQL Server tambien tiene
información de hora (por eso se llama datetime...;-). Cuando haces
referencia a una fecha sin suministrar la hora se asume que la hora es
00:00:00.000. Por eso, si quieres buscar hasta una determinada fecha, tienes
que setear la hora a 23:59:59.000.
Además, te recomiendo que si estás usando SQL Server hagas las consultas de
fecha de esta manera: ... where Fecha > {ts '2006-06-12 23:59:59.000'},
donde el formato sería AAAA-MM-DD HH:MM:SS.MMM. Esto se llama "constante de
fecha" y te permitirá evitar errores de interpretación en el servidor, ya
que algunos están seteados para entender DMA y otros MDA.

Saludos
Lic. Diego Cofré
Desarrollador
EWAVE GROUP S.A
www.e-wavegroup.com

Preguntas similares