Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Consulta con campo tipo "hora corta" (http://www.forosdelweb.com/f29/consulta-con-campo-tipo-hora-corta-549031/)

freegirl 17/01/2008 09:01

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

erick_arcini 17/01/2008 12:14

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 :adios:

freegirl 18/01/2008 04:45

Re: Consulta con campo tipo "hora corta"
 
Gracias por la respuesta.

He probado pero me sigue sin funcionar.

saludos

erick_arcini 18/01/2008 10:25

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...

MaLkAvIaN_NeT 18/01/2008 10:29

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 :si:

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)


freegirl 18/01/2008 14:16

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


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

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.