SQL - Problema con fecha

   
Vista:

Problema con fecha

Publicado por Jose Daniel (1 intervención) el 10/08/2010 16:34:06
Hola amigos del foro tengo un inconveniente espero que me puedan ayudar. el problema es el siguiente, quiero hacer una consulta de la siguiente manera. Tengo dos fechas 01/07/2007 hasta 30/07/2010 pero de estas dos fecha quiero excluir el mes de agosto del 2008 completo ósea del 01/08/2008 hasta 30/08/2008. Quiero hacer esta consulta sin tomar en cuenta el mes de agosto completo del año especificado. Si me pueden ayudar por favor se lo agradeceré muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con fecha

Publicado por Leonardo Josue (880 intervenciones) el 10/08/2010 21:11:32
Buenas Tardes José Daniel, en tu post no mencionas qué manejador de base de datos estás utilizando.

No estoy seguro de haber entendido lo que quieres, pero me imagino que tienes una tabla con un campo tipo fecha y quieres recuperar sólo aquellos registros en donde la fecha capturada esté entre el 01/07/2007 y el 30/07/2010, exceptuando aquellos comprendidos en el mes de agosto de 2008 correcto??? Si este es el caso entonces te pongo el ejemplo de cómo sería la consulta utilizando SQL Server, si usas otro manejador de BD sería cuestión de que la adecues un poco.

Supongamos que tienes una tabla con un campo fecha de datetime, la consulta quedaría mas o menos así:

select * from Tabla
where
convert(datetime, convert(varchar, fecha, 103), 103) between
convert(datetime, '01/07/2007', 103) and convert(datetime, '30/07/2010', 103) and
convert(datetime, convert(varchar, registro, 103), 103) not between
convert(datetime, '01/08/2008', 103) and convert(datetime, '31/08/2008', 103)

Ojo, Agostro tiene 31 días mientras que tu estabas colocandolo hasta el día 30 y todas las conversiones son para majerar las fechas con el formato dd/mm/yyyy

Si continuas con problemas lo comentas en el foro para tratar de ayudarte.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con fecha

Publicado por Hubert (98 intervenciones) el 13/08/2010 07:14:31
Realiza la consulta en formato ANSI se ejecuta mas rápido por que no tienes nada que convertir.

SELECT * FROM Tabla WHERE (fecha > '20070701' AND fecha <'20080801') OR (fecha > '20080901' AND fecha < '20100801')

Te explico el manejo de fechas: Fijate que le pongo un día después en "<" (SQL no considera ese dia). Cuando coloco (fecha <'20080801') significa que que es las 00 horas del 01/08/2008 osea tiene que ser menor, lo mismo para '20100801'

Para '20080901' si se considera por el dato es tomado apartir de las 00 horas.

Saludos desde Perú
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar