Foros del Web » Programación para mayores de 30 ;) » .NET »

Consulta con campo tipo "hora corta"

Estas en el tema de Consulta con campo tipo "hora corta" en el foro de .NET en Foros del Web. Hola, estoy intentando lanzar unas consultas desde VB.NET 2003 hacia una BD Access 2003. El "problema" es cuando tengo que filtrar los datos por el ...
  #1 (permalink)  
Antiguo 17/01/2008, 09:01
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
Pregunta Consulta con campo tipo "hora corta"

Hola,

estoy intentando lanzar unas consultas desde VB.NET 2003 hacia una BD Access 2003. El "problema" es cuando tengo que filtrar los datos por el campo de tipo fecha corta.

Si en el propio Access hago esto:
Cita:
select tarea from tareas where hora>#15:00#
Me devuelve correctamente los datos. Pero si lanzo la consulta desde VB, entonces me devuelve mal los datos.

Como sería lo correcto? Ya que he intentado varias cosas y ninguna me funciona.

Gracias de antemano
  #2 (permalink)  
Antiguo 17/01/2008, 12:14
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Re: Consulta con campo tipo "hora corta"

Hola fregirl

mmmm, veo que en la consulta, el parámetro que envías es el de la hora corta, bueno, no se, se me ocurre algo como esto:

Código:
dim cadena as string = "select * from tareas where hora > #" & tiempo.ToString("HH:mm") & "#"
Teniendo en cuenta que "tiempo" es un formato correcto de hora

Espero que eso resuelva tu duda
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #3 (permalink)  
Antiguo 18/01/2008, 04:45
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
Re: Consulta con campo tipo "hora corta"

Gracias por la respuesta.

He probado pero me sigue sin funcionar.

saludos
  #4 (permalink)  
Antiguo 18/01/2008, 10:25
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Re: Consulta con campo tipo "hora corta"

Puedes colocar tu código para ver que te esta fallando? digo, puede que se lo estes pasando por parámetro y no lo pases bien...
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #5 (permalink)  
Antiguo 18/01/2008, 10:29
Avatar de MaLkAvIaN_NeT  
Fecha de Ingreso: marzo-2005
Ubicación: trujillo
Mensajes: 141
Antigüedad: 19 años, 1 mes
Puntos: 0
Re: Consulta con campo tipo "hora corta"

Lo que te recomendaría es que cuando guardes el dato desde .NET en tu BD lo guardes de tal forma de que al leerlo desde .NET no existan diferencias.
Me refiero a que por ejemplo no es necesario que guardes los segundos, solo la hora corta

como lo puedes hacer:

Código:
//voy a tomar la hora de un datatimepiker lo tomo de la siguiente manera:
hora=daFormatoHora(me.dtphora.value)

private function daFormatoHora(valHora as date) as date
return cdate(valHora.Hour + ":" + valHora.Minutes +":00")
end

//cuando tengas guardado la hora de esa manera ya no tienes problemas para leer.
//entonces:
"select * from tareas where hora >" + me.daformatohora(me.dtphora.value).tostring
//esto funciona con netframework menor a la version 2 que es lo que usa VB2003.
//SI tienes version 2 en adelante quita el .tostring o tendras un erorr que dices
//no se puede convertir fecha en cadena, seria necesario crear un procedure
//desde acces.(si se puede si algunos dicen que no)
__________________
www.tecfactory.com
  #6 (permalink)  
Antiguo 18/01/2008, 14:16
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
Re: Consulta con campo tipo "hora corta"

Hola,

en la BD guardo la hora corta y está correcto, por ejemplo: 12:34

El código que tengo (un ejemplo):

Cita:
sqlstr="select campo1 from tabla1 where hora>@valor"
params(0) = New ParameterBuilder("@valor", DbType.Time)
params(0).Value = cdate('12:35')
Bueno esto es lo que tengo último, porque ya probé un montón de cosas y nada me sirvió.

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 23:36.