Autor Tema: Filtrar por fecha si un campo tiene hora integrada [bd MySQL]  (Leído 16631 veces)

0 Usuarios y 1 Visitante están viendo este tema.

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Tengo una tabla con un tipo de campo DateTime, desde vb lo guardo sin problemas asi:

Código: (VB) [Seleccionar]
V01 = "'" & Format(DTPicker1.Value, "yyyy/MM/dd hh:mm:ss") & "'"
Ahora al querer hacer el filtro con:

Código: (SQL) [Seleccionar]
SELECT * FROM vehiculos_detalle WHERE fingreso BETWEEN '2013-06-10' AND '2013-06-10'
No me trae si la fecha de inicio es igual al final ahora si pongo al final un día mas me trae.

o sea si hago asi si me trae los resultados.

Código: (SQL) [Seleccionar]
SELECT * FROM vehiculos_detalle WHERE fingreso BETWEEN '2013-06-10' AND '2013-06-11'
« última modificación: Junio 18, 2013, 04:12:20 pm por E N T E R »
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

raul338

  • Terabyte
  • *****
  • Mensajes: 894
  • Reputación: +62/-8
  • xD fan!!!!! xD
    • Ver Perfil
    • Raul's Weblog
Re:Filtrar por fecha si un campo tiene hora integrada [bd MySQL]
« Respuesta #1 en: Junio 18, 2013, 05:23:10 pm »
Proba:

Código: (sql) [Seleccionar]
SELECT * FROM vehiculos_detalle WHERE DATE(fingreso) = '2013-06-10'

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Re:Filtrar por fecha si un campo tiene hora integrada [bd MySQL]
« Respuesta #2 en: Junio 18, 2013, 05:35:44 pm »
Si funciona ese Raul, pero lo que pasa es que no puedo filtrar así si desde una fecha hasta otra fecha por ejemplo si quiero filtrar desde 2013-06-10 hasta el 2013-06-18.
Esto solo pasa si el tipo de campo es DateTime, si solo pongo el campo Date me funciona bien el codigo que mencione ahi.

Lo hice así para evitar poner tantas columnas y tantos controles en el form de VB.
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Filtrar por fecha si un campo tiene hora integrada [bd MySQL]
« Respuesta #3 en: Junio 18, 2013, 05:52:59 pm »
Prueba con

Código: (SQL) [Seleccionar]
SELECT * FROM vehiculos_detalle WHERE fingreso BETWEEN '2013-06-10 00:00:00' AND '2013-06-11 23:59:59'
o

Código: (SQL) [Seleccionar]
SELECT * FROM vehiculos_detalle WHERE Cast(fingreso as Date) BETWEEN '2013-06-10' AND '2013-06-11'
Nota: No estoy seguro como se usa Cast en MySQL o en todo caso debe haber una función similar, lo que hace es convertirte en la consulta SQL el campo DateTime a Date. Si tienes muchos registros podría impactar negativamente en la velocidad de la consulta ya que no haria caso si el campo fingreso estuviera indexado. Yo uso la primera forma sin problemas.

Saludos
Me encuentras en YAcosta.com

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Re:Filtrar por fecha si un campo tiene hora integrada [bd MySQL]
« Respuesta #4 en: Junio 18, 2013, 06:00:28 pm »
Gracias a todos por responder lo solucione asi:

Código: (SQL) [Seleccionar]
SELECT * FROM vehiculos_detalle WHERE DATE(fingreso) BETWEEN '2013-06-10' AND '2013-06-10'
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

lucius

  • Gigabyte
  • ****
  • Mensajes: 263
  • Reputación: +6/-5
    • Ver Perfil
Re:Filtrar por fecha si un campo tiene hora integrada [bd MySQL]
« Respuesta #5 en: Febrero 12, 2016, 01:47:11 am »
Hola, tengo el mismo problema pero estoy trabajando con access2003 o en todo caso podria trabajarlo con access2007 en caso tenga mas funciones.

La solucion final de enter no funca en access y la funcion CAST menos, que estresante resulto este imprevisto.

Virgil Tracy

  • Kilobyte
  • **
  • Mensajes: 64
  • Reputación: +38/-1
    • Ver Perfil
Re:Filtrar por fecha si un campo tiene hora integrada [bd MySQL]
« Respuesta #6 en: Febrero 13, 2016, 04:17:34 am »
Usando el diseñador de consultas de access para un entre fechas 04-12-2015 y 31-12-2015

Código: (SQL) [Seleccionar]
SELECT Codigo, Fecha
FROM Movimiento_Pesaje
WHERE [Fecha] Between #12/4/2015# And #12/31/2015#

jose.emanuel.vega

  • Bit
  • Mensajes: 4
  • Reputación: +1/-0
    • Ver Perfil
Re:Filtrar por fecha si un campo tiene hora integrada [bd MySQL]
« Respuesta #7 en: Febrero 17, 2016, 05:28:37 pm »


Tengo una tabla con un tipo de campo DateTime, desde vb lo guardo sin problemas asi:

Código: (VB) [Seleccionar]
V01 = "'" & Format(DTPicker1.Value, "yyyy/MM/dd hh:mm:ss") & "'"
Ahora al querer hacer el filtro con:

Código: (SQL) [Seleccionar]
SELECT * FROM vehiculos_detalle WHERE fingreso BETWEEN '2013-06-10' AND '2013-06-10'
No me trae si la fecha de inicio es igual al final ahora si pongo al final un día mas me trae.

o sea si hago asi si me trae los resultados.

Código: (SQL) [Seleccionar]
SELECT * FROM vehiculos_detalle WHERE fingreso BETWEEN '2013-06-10' AND '2013-06-11'


De esta forma te aseguras que si es campo datetime o date siempre se filtre por la fecha

SELECT * FROM vehiculos_detalle WHERE Convert(varchar(8), fingreso, 112) BETWEEN '20130610' AND '20130611'

Si no es lo que buscabas avisame.

Saludos cordiales

Enviado desde mi XT1032 mediante Tapatalk


lucius

  • Gigabyte
  • ****
  • Mensajes: 263
  • Reputación: +6/-5
    • Ver Perfil
Re:Filtrar por fecha si un campo tiene hora integrada [bd MySQL]
« Respuesta #8 en: Febrero 22, 2016, 04:37:00 am »
Hola, en este artículo se explica el pequeño problema con mas detalle sin embargo para MSAccess debe haber otra solucion

http://ltuttini.blogspot.pe/2010/09/adonet-filtrar-rango-de-fechas.html