Foros del Web » Programando para Internet » ASP Clásico »

Problema al buscar por fecha

Estas en el tema de Problema al buscar por fecha en el foro de ASP Clásico en Foros del Web. Hola a tod@s, estoy haciendo un buscador y uno de los criterios es que el usuario introduzca un rango de fechas y se buscan todos ...
  #1 (permalink)  
Antiguo 11/12/2008, 08:57
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 6 meses
Puntos: 8
Problema al buscar por fecha

Hola a tod@s, estoy haciendo un buscador y uno de los criterios es que el usuario introduzca un rango de fechas y se buscan todos los registros cuyo campo fecha_actualizacion este dentro de ese rango. Pues bien, ponga lo que ponga, siempre me salen cero resultados, he intentado poner las fechas en formato dd/mm/aaaa y también como mm/dd/aaaa y nada, he puesto las fechas entre almohadillas #dd/mm/aaaa# en cuyo caso me da error de sintaxis (la base de datos es sqlserver y el tipo de dato es datetime aunque también he probado con smalldatetime). He probado a coger la cadena tal cual me llega y también a hacerle previamente un CDATE para convertirla a tipo fecha, pero nada, no hay forma de que saque resultados. Tengo varios registros de estos ultimos dias y aunque busque desde 01/01/2008 hasta 31/12/2008 nunca me saca resultados :( alguien sabe porque puede ser esto?? Os dejo el código tal y como lo he dejado de momento

Código PHP:
fecha1=request.form("fecha1")
fecha2=request.form("fecha2")

sql2 "SELECT * FROM datos_usuarios WHERE fecha_actualizacion>=  " fecha1 " and fecha_actualizacion <= " fecha2 "" 
Esta sql al coger los datos del usuario se queda de la siguiente forma:

Código PHP:
SELECT FROM datos_usuarios WHERE fecha_actualizacion>= 01/01/2008 and fecha_actualizacion <= 12/31/2008 
o si cambio la posición de mes y año:

Código PHP:
SELECT FROM datos_usuarios WHERE fecha_actualizacion>= 01/01/2008 and fecha_actualizacion <= 31/12/2008 
Y nada, nunca devuelve resultados. Lo dicho, a alguien se le ocurre el motivo?? Muchas gracias por adelantado, salu2

P.D.: Por si alguien lo pregunta, si, he probado a poner el between en la sentencia en lugar de >= y <=
__________________
Vayamos por Partes :: Jack el Destripador
  #2 (permalink)  
Antiguo 11/12/2008, 09:38
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 7 meses
Puntos: 8
Respuesta: Problema al buscar por fecha

Intentlo en el formato YYYYMMDD, por ejemplo:

Código:
SELECT * FROM datos_usuarios WHERE fecha_actualizacion>= '20080101' and fecha_actualizacion <= '20081231'
Aunque al parecer no tienes datos o tu fecha_actualizacion campo no es del tipo datetime.
  #3 (permalink)  
Antiguo 11/12/2008, 10:20
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 6 meses
Puntos: 8
Respuesta: Problema al buscar por fecha

Si si, es del tipo datetime eso ya lo he comprobado, y datos también hay. Ahora después probaré el formato que comentas, aunque los datos que hay metidos en la base, están en formato dd/mm/aaaa
__________________
Vayamos por Partes :: Jack el Destripador
  #4 (permalink)  
Antiguo 11/12/2008, 11:14
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Respuesta: Problema al buscar por fecha

Cita:
Iniciado por angel_dope Ver Mensaje
Si si, es del tipo datetime eso ya lo he comprobado, y datos también hay. Ahora después probaré el formato que comentas, aunque los datos que hay metidos en la base, están en formato dd/mm/aaaa
prueba lo que daniel te dijo

y si en tu base almacenas horas y minutos tienen que adaptar el sql

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #5 (permalink)  
Antiguo 11/12/2008, 11:48
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 9 meses
Puntos: 16
Respuesta: Problema al buscar por fecha

aburrido de estas tonteras, hace tiempo que decidi guardar las fechas en mi propio formato.
que es del tipo YYYYMMDDHHMMSS

te dejo dos funciones que ami me han solucionado la vida de manera cosiderable.

creo que tb las puse en las biblioteca de funciones... ya no recuerdo

Código PHP:
function dateToIwsDate(str)
    
DIM ANO,MES,DIA,HORA,MINUTO,SEGUNDO
    
if isdate(str) = true then
        ano 
year(str)
        
mes month(str)
        
dia day(str)
        
horahour(str)
        
minuto minute(str)
        
segundo second(str)
        if 
len(ano) < 4 then ano "20" ano
        
if len(mes) < 2 then mes "0" mes
        
if len(dia) < 2 then dia "0" dia
        
if len(hora) < 2 then hora "0" hora
        
if len(minuto) < 2 then minuto "0" minuto
        
if len(segundo) < 2 then segundo "0" segundo
        dateToIwsDate 
ano&mes&dia&hora&minuto&segundo
    
else
        
dateToIwsDate"19000101000000"
    
end if
end function


function 
iwsDateToDate(str)
    
DIM ANO,MES,DIA,HORA,MINUTO,SEGUNDO,X_FECHA
    
if len(str) = 14 then
        ano 
left(str,4)
        
mes mid(str,5,2)
        
dia mid(str,7,2)
        
hora mid(str,9,2)
        
minuto mid(str,11,2)
        
segundo right(str,2)
        
x_fecha ano "/" mes "/" dia " " hora ":" minuto ":" segundo
        
if isdate(x_fecha) = true then
            iwsDateToDate 
cstr(x_fecha)
        else
            
iwsDateToDate iwsDateToDate("19000101000000")
        
end if
    else
        
iwsDateToDate iwsDateToDate("19000101000000")
    
end if
end function 
checala asi

response.write dateToIwsDate(now)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:01.