** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y Otros sistemas
  Mensajes nuevos Mensajes nuevos RSS - Where con Between no retorna fecha
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoWhere con Between no retorna fecha

 Responder Responder
Autor
Mensaje
Dany Solis Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 23/Octubre/2010
Localización: Cd. Juarez Méx
Estado: Sin conexión
Puntos: 912
Enlace directo a este mensaje Tema: Where con Between no retorna fecha
    Enviado: 08/Febrero/2021 a las 04:50
Tengo un campo fecha DateTime en mi tabla MySql y estoy empleando la siguiente consulta para obtener los valores entre dos fechas, pero por ejemplo si ingreso 01/18/2021 fecha inicial y 01/29/2021 fecha final me devuelve todos los registros desde 01/18/2021 hasta 01/28/2021, me esta dejando fuera la fecha del 01/29.

Otra cosa estoy haciendo uso correcto dedel Having? ya que quiero hacer la suma de Duration y ProducedParts siempre y cuando el campo State sea igual a 10 y 11 dentro de las fechas dadas.

Esta es la consulta:

SELECT  ld.No ,

ld.LSet,

SUM(ld.Duration) as TotalDuration ,

SUM(ld.ProducedParts) as TotalPcs,

ld.State,

 DATE_FORMAT (ld.InsertTime ,  '%d-%m-%Y') as DateIni,

b.WireA ,

b.WireLengthA  ,

b.WireB ,

b.WireLengthB  ,

b.Terminal1,

b.Seal1,

b.Terminal2,

b.Seal2,

b.Terminal3,

b.Seal3,

b.Terminal4,

b.Seal4

FROM ldata ld

INNER JOIN bomv b

ON ld.Lset = b.Lset

WHERE

ld.InsertTime between STR_TO_DATE('@{1}', '%c/%e/%Y %H:%i:%s')--Aqui el Where con Between

AND

STR_TO_DATE('@{2}', '%c/%e/%Y %H:%i:%s')

GROUP BY

ld.No ,

ld.Lset,

ld.State,

b.WireA ,

b.WireLengthA  ,

b.WireB ,

b.WireLengthB  ,

b.Terminal1,

b.Seal1,

b.Terminal2,

b.Seal2,

b.Terminal3,

b.Seal3,

b.Terminal4,

b.Seal4

HAVING ld.State = 10

OR

ld.State = 11

ORDER BY ld.InsertTime, ld.No

Espero puedan ayudarme en identificar que es lo que estoy haciendo mal en la consulta.

Saludos

DS
Donde hay educación, no hay distinction de clases. (Confusio)

Dany Solis
Arriba
raipon Ver desplegable
Moderador
Moderador


Unido: 10/Diciembre/2004
Localización: Desconocida
Estado: Sin conexión
Puntos: 4044
Enlace directo a este mensaje Enviado: 08/Febrero/2021 a las 13:54
Hace mucho tiempo que no tengo ocasión de trabajar con MySql, así que te respondo en base al comportamiento de Microsoft Access, y de ahí podrás extrapolar conclusiones.

Access almacena las fechas como un número single, donde la parte entera corresponde a los dias transcurridos desde el 30 de diciembre de 1899 (es el dia cero) y la parte decimal la fracción de tiempo. 

Si este filtro Where MyDate Between #12-30-1899# And #12-31-1899# lo expresamos de forma numérica, queda claro por qué no devuleve datos que correspondan a la última fecha:

Where CSng(MyDate) Between 0 And 1

... solo te devolverá datos del dia 31 de diciembre de 1899 si la fracción de tiempo es cero.
Ramon desde Terrassa.

Mi blog
Arriba
Dany Solis Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 23/Octubre/2010
Localización: Cd. Juarez Méx
Estado: Sin conexión
Puntos: 912
Enlace directo a este mensaje Enviado: 09/Febrero/2021 a las 03:03
Gracias Raipon,

He leido un poco y ya me ha quedado aun mas claro su comentario.

Muchas gracias, se puede cerrar el hilo.

DS
Donde hay educación, no hay distinction de clases. (Confusio)

Dany Solis
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable