Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

como hacer "where.. like.." con campo Fecha/hora

Estas en el tema de como hacer "where.. like.." con campo Fecha/hora en el foro de Visual Basic clásico en Foros del Web. Hola a todos, necesito hacer una Select en VB6 para obtener los registros de una fecha determinada... El problema es que el campo es Fecha/hora, ...
  #1 (permalink)  
Antiguo 11/07/2008, 04:09
 
Fecha de Ingreso: octubre-2007
Mensajes: 15
Antigüedad: 16 años, 6 meses
Puntos: 0
como hacer "where.. like.." con campo Fecha/hora

Hola a todos,

necesito hacer una Select en VB6 para obtener los registros de una fecha determinada...

El problema es que el campo es Fecha/hora, y se guarda de este modo "04/09/2007 14:04:20"... y yo querría hacer algo como un FECHA LIKE "04/09/2007%" pero Access no me deja, o no obtengo resultados de la consulta..

De algún modo se tiene que poder, puesto que si directamente en la tabla Access le aplico un filtro al texto seleccionado, me hace bien el filtro... Otra forma sería saber como construye esa sentencia SQL access para crear el filtro, pero no se cómo se puede mirar eso...

¿Alguien sabría ayudarme??

Muchas gracias de antemano

P.D.: No puedo cambiar el tipo de campo en Access ya que la BD la utiliza otro programa que no he hecho yo, y podría dejar de funcionar...
  #2 (permalink)  
Antiguo 11/07/2008, 04:23
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: como hacer "where.. like.." con campo Fecha/hora

Cita:
Iniciado por juannavas7 Ver Mensaje
Hola a todos,

necesito hacer una Select en VB6 para obtener los registros de una fecha determinada...

El problema es que el campo es Fecha/hora, y se guarda de este modo "04/09/2007 14:04:20"... y yo querría hacer algo como un FECHA LIKE "04/09/2007%" pero Access no me deja, o no obtengo resultados de la consulta..

De algún modo se tiene que poder, puesto que si directamente en la tabla Access le aplico un filtro al texto seleccionado, me hace bien el filtro... Otra forma sería saber como construye esa sentencia SQL access para crear el filtro, pero no se cómo se puede mirar eso...

¿Alguien sabría ayudarme??

Muchas gracias de antemano

P.D.: No puedo cambiar el tipo de campo en Access ya que la BD la utiliza otro programa que no he hecho yo, y podría dejar de funcionar...

Hola,

no creo que sea por el campo fecha/hora, sino mas bien porque no estás encerrando bien la fecha:

SELECT [Campos] FROM [LaTabla] WHERE [LaFecha] = #04/09/2007#

  #3 (permalink)  
Antiguo 11/07/2008, 04:32
 
Fecha de Ingreso: octubre-2007
Mensajes: 15
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: como hacer "where.. like.." con campo Fecha/hora

Cita:
Iniciado por Avellaneda Ver Mensaje
Hola,

no creo que sea por el campo fecha/hora, sino mas bien porque no estás encerrando bien la fecha:

SELECT [Campos] FROM [LaTabla] WHERE [LaFecha] = #04/09/2007#

Gracias por la respuesta... el problema es que en la BD ese campo está guardado con Hora incluida es decir, pongamos que para un mismo dia hay 2 registros que serían:

"04/09/2007 14:04:20"
"04/09/2007 15:12:18"

yo necesito una consulta que me devuelva todos los datos para el día 04/09/2007, sin que tenga en cuenta la hora...

No se si me explico... el operador de la clausula where no podría ser "="...

Help Please!!!!!!
  #4 (permalink)  
Antiguo 11/07/2008, 04:54
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: como hacer "where.. like.." con campo Fecha/hora

¿Has probado haciendo que la fecha sea mayor que 04/09/2007 00:00:00 y menor que 04/09/2007 23:59:59?
  #5 (permalink)  
Antiguo 11/07/2008, 05:11
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: como hacer "where.. like.." con campo Fecha/hora

Cita:
Iniciado por juannavas7 Ver Mensaje
Gracias por la respuesta... el problema es que en la BD ese campo está guardado con Hora incluida es decir, pongamos que para un mismo dia hay 2 registros que serían:

"04/09/2007 14:04:20"
"04/09/2007 15:12:18"

yo necesito una consulta que me devuelva todos los datos para el día 04/09/2007, sin que tenga en cuenta la hora...

No se si me explico... el operador de la clausula where no podría ser "="...

Help Please!!!!!!
Si pones la consulta como te indiqué, devolverá los dos registros, independientemente de la hora ¿lo has comprobado?

  #6 (permalink)  
Antiguo 11/07/2008, 05:25
 
Fecha de Ingreso: octubre-2007
Mensajes: 15
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: como hacer "where.. like.." con campo Fecha/hora

He conseguido solucionarlo... El truco estaba pensando al revés...


SELECT [Campos] FROM [LaTabla] WHERE LEFT(CSTR[Fecha],10) = "04/09/2007"

Lo que he modificado es el valor que recupero de la Base de datos, y así lo comparo, cómo si de un String se tratara...


FECHA devuelve "04/09/2007 14:04:20"

CSTR (FECHA) pasa "04/09/2007 14:04:20" a un STRING

y con LEFT( x, 10) me quedo con las 10 primeras posiciones del String es decir: "04/09/2007"

Espero que a alguien le pueda servir para no perder tanto tiempo como he perdido yo...

lo bueno es que ya está resuelto!

Saludos! y gracias por las respuestas!!!
  #7 (permalink)  
Antiguo 14/07/2008, 10:12
Avatar de Jhonnyf  
Fecha de Ingreso: septiembre-2007
Ubicación: Dentro de mi
Mensajes: 87
Antigüedad: 16 años, 7 meses
Puntos: 5
Respuesta: como hacer "where.. like.." con campo Fecha/hora

si la configuracion de la PC cambia a formato americano Mes dia año (MM/dd/yy) tu aplicacion va a grabar con errores y bien feos!

Yo prefiero trabajar las fechas en formato ISO

Aqui te dejo todo lo que puede ocurrir si trabajas asi


VB6 - Problemas al hacer consultas con un campo FECHA (DATETIME)

además que ahi dice como puedes filtrar por Mes especifico, Año, etc

espero te sirva

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 18:50.