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

Comparar fechas en BD SQLServer

Estas en el tema de Comparar fechas en BD SQLServer en el foro de ASP Clásico en Foros del Web. Mucho les agradecería que me ayudaran a resolver este problema. Tengo este código: sql = "SELECT * FROM TecnicosHabilitados WHERE RFCTecnico = '"& RFCTecnico &"' ...
  #1 (permalink)  
Antiguo 13/11/2002, 15:24
 
Fecha de Ingreso: marzo-2002
Mensajes: 6
Antigüedad: 23 años, 2 meses
Puntos: 0
Comparar fechas en BD SQLServer

Mucho les agradecería que me ayudaran a resolver este problema.

Tengo este código:


sql = "SELECT * FROM TecnicosHabilitados WHERE RFCTecnico = '"& RFCTecnico &"' and FechaHabilitacion = "& FechaHabilitacion &""


FechaHabilitacion la estoy construyendo con:

FechaHabilitacion = MES&"/"&DIA&"/"&year(cdate(FechaHabilitacion_llega))



Me manda el siguiente error:

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC SQL Server Driver][SQL Server]The conversion of char data type to smalldatetime data type resulted in an out-of-range smalldatetime value.

Gracias
  #2 (permalink)  
Antiguo 13/11/2002, 19:40
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 23 años, 3 meses
Puntos: 50
Hola... si lo que quieres es comparar dos fechas... cual es mas grande que otra podrías hacer lo siguiente...

sql = "SELECT * FROM TecnicosHabilitados WHERE RFCTecnico = '"& RFCTecnico &"' and FechaHabilitacion = "& FechaHabilitacion &""

obtienes el recordset de la fecha.. por ejemplo

dim fecha1
dim fecha2

fecha1 = rs("FechaHabilitacion")
fecha2 = "23/10/05 18:15:03"

if fecha1 > fecha2 then
algo
else
otra cosa
end if
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 13/11/2002, 19:40
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 23 años, 3 meses
Puntos: 50
Hola... si lo que quieres es comparar dos fechas... cual es mas grande que otra podrías hacer lo siguiente...

sql = "SELECT * FROM TecnicosHabilitados WHERE RFCTecnico = '"& RFCTecnico &"' and FechaHabilitacion = "& FechaHabilitacion &""

obtienes el recordset de la fecha.. por ejemplo

dim fecha1
dim fecha2

fecha1 = rs("FechaHabilitacion")
fecha2 = "23/10/05 18:15:03"

if fecha1 > fecha2 then
algo
else
otra cosa
end if

Saludos
  #4 (permalink)  
Antiguo 14/11/2002, 08:52
 
Fecha de Ingreso: marzo-2002
Mensajes: 6
Antigüedad: 23 años, 2 meses
Puntos: 0
Gracias RootK, más bien lo que quiero hacer es igualar las dos fechas directamente en el query.

Estoy recibiendo FechaHabilitacion desde un formulario donde el usuario digita la fecha en formato dd/mm/aaaa, después despongongo ese string y lo vuelvo a armar como mm/dd/aaaa ya que el servidor está configurado con las fechas en inglés. pero cuando lo comparo en el query al parecer el SQL server no lo interpreta como fecha.

sql = "SELECT * FROM TecnicosHabilitados WHERE RFCTecnico = '"& RFCTecnico &"' and FechaHabilitacion = "& FechaHabilitacion &""

Qué le faltará al query?

  #5 (permalink)  
Antiguo 14/11/2002, 09:12
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
FechaHabilitacion = MES&"/"&DIA&"/"&year(FechaHabilitacion_llega)

response.write FechaHabilitacion

fijate si te crea bien la fecha antes de usarlo en la consulta
  #6 (permalink)  
Antiguo 14/11/2002, 10:07
 
Fecha de Ingreso: marzo-2002
Mensajes: 6
Antigüedad: 23 años, 2 meses
Puntos: 0
OK bakanzipp tienes razón.

Con el CDATE haces que lo tome como fecha.

gracias a ambos

Saludos
  #7 (permalink)  
Antiguo 17/01/2003, 16:32
 
Fecha de Ingreso: abril-2002
Mensajes: 432
Antigüedad: 23 años
Puntos: 0
Yo tengo un problema algo similar, intento comparar la fecha del ordenador del cliente con la una fecha insertada en la tabla.

Resulta que la fecha que inserto en la tabla me la convierte a formato ingles, pues el servidor es ingles, y la fecha del ordenador del cliente esta en formato hispano.

Cuando obtengo la fecha del cliente dd/MM/aaaa la convierto al formato mm/dd/aaaa que es el formato que tiene la fecha que hay en la bd, pero la comparacion entre ambas fechas no da un resultado correcto.

¿Cual es mi error? :cantar:
  #8 (permalink)  
Antiguo 19/01/2003, 17:41
 
Fecha de Ingreso: julio-2002
Mensajes: 447
Antigüedad: 22 años, 9 meses
Puntos: 0
Tenía el mismo inconveniente con las fechas, me refiero con un server en inglés... a veces en determinadas fechas, me comparaba mal...
Lo solucioné comparando las fechas en formato aaaa/mm/dd, fijate si te sirve (o sea, convertí la fecha del formulario a este formato y después comparala con la de la base)
Saludos, suerte...
  #9 (permalink)  
Antiguo 14/02/2003, 08:00
Avatar de mazingerz  
Fecha de Ingreso: febrero-2003
Ubicación: Sarasota FL
Mensajes: 147
Antigüedad: 22 años, 3 meses
Puntos: 0
Bueno, despues de ver que todas las ideas ayudan una mas...
bien

Esto te entrega la cantidad de dias por ejemplo
Dim TheDAte
TheDate = Date()
DATEDIFF(day , casos.fecha,'" & theDate & "') as Dias


Lo otro es usar el CONVERT, es super util
Convert(smalldatetime,'" & Format(Now, "dd/mm/yyyy") & "',103)

Lo mejor es el Convert..

Saludos
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 14:19.