Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Consulta de fecha

Estas en el tema de Consulta de fecha en el foro de Bases de Datos General en Foros del Web. Hola a todos. No se como hacer esto, y ya llevo tiempo dandome cabezazos sin conseguirlo. Quiero saber si una hora, está comprendido entre dos ...
  #1 (permalink)  
Antiguo 31/07/2015, 06:58
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 5 meses
Puntos: 32
Consulta de fecha

Hola a todos.

No se como hacer esto, y ya llevo tiempo dandome cabezazos sin conseguirlo.

Quiero saber si una hora, está comprendido entre dos horas.

Por ejemplo si quiero saber que las 15:00h está dentro desde las 12:00h y 21:00 me da afirmativo, pero ¿que pasa si la hora fin son las 00h?

La sentencia que uso es la siguiente, porque compruebo también que la hora no sea inferior a la de inicio ni superior a la final, ya que quiero saber si ha puesto una hora inferior a la inicio o superior a la final.

En la base de datos, el campo hora_inicio y hora_fin es un valor integer.

Código SQL:
Ver original
  1. SELECT * FROM apertura_cierre WHERE
  2.                 CAST('$_POST[inicio]' AS TIME) < CAST(CONCAT(hora_inicio,':00') AS TIME)
  3.                 OR CAST('$hora_fin' AS TIME) > CAST(CONCAT(hora_fin,':00') AS TIME)
  4.                 OR CAST('$hora_fin' AS TIME) < CAST(CONCAT(hora_inicio,':00') AS TIME)";

El valor $_POST[inicio] viene con el formato hh:mm

Si hay alguna otra forma de hacerlo, bienvenido sea.

Muchas gracias
__________________
Somos una serie de acontecimiento que puede venir al caso en un momento dado.

Última edición por gnzsoloyo; 31/07/2015 a las 07:39
  #2 (permalink)  
Antiguo 31/07/2015, 07:19
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 10 meses
Puntos: 127
es necesario que sea por una query?
no podrias validarlo en php?
  #3 (permalink)  
Antiguo 31/07/2015, 07:42
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta de fecha

Cita:
Por ejemplo si quiero saber que las 15:00h está dentro desde las 12:00h y 21:00 me da afirmativo, pero ¿que pasa si la hora fin son las 00h?
Por definición, las 00:00:00 no representa la hora final del día, sino el inicio del día siguiente. Cualquier validación que se realice debe hacerse tomando en cuenta que el rango de horas de un día es desde 00:00:00 a 23:59:59.
Ahora bien, cuando se trata de sumatorias o estadísticas, se debe hacer una corrección sumando a cada agrupamiento un segundo por día para compensar la discrepancia entre 86400 segundos reales y los 86399 que quedan al tomar el limite 23:59:59.

¿Se entiende?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 31/07/2015, 09:52
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 5 meses
Puntos: 32
Respuesta: Consulta de fecha

Cita:
Iniciado por enlinea777 Ver Mensaje
es necesario que sea por una query?
no podrias validarlo en php?
Lo he hecho por query, ya que al principio, no se iba a tener en cuenta el final de hora a las 00h, y por un script era mas complejo, pero ahora me comunican que el cierre es a las 00h, y se me presenta este error


gnzsoloyo
Tengo hecho en otros sitios ese planteamiento, pongo las 23:59, pero aquí se me ha complicado un poco.

Gracias por contestar !!!
__________________
Somos una serie de acontecimiento que puede venir al caso en un momento dado.
  #5 (permalink)  
Antiguo 31/07/2015, 10:07
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta de fecha

Cuando trabajas con hora, en base de datos, siempre debes trabajar con los segundos. Siempre.
Lo que luego muestres en la pantalla no importa, las horas se miden siempre con lo segundos incluidos o se generan errores.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 31/07/2015, 11:01
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 5 meses
Puntos: 32
Respuesta: Consulta de fecha

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Cuando trabajas con hora, en base de datos, siempre debes trabajar con los segundos. Siempre.
Lo que luego muestres en la pantalla no importa, las horas se miden siempre con lo segundos incluidos o se generan errores.
Gracias lo tendré en cuenta.
__________________
Somos una serie de acontecimiento que puede venir al caso en un momento dado.

Etiquetas: campo, fecha, select, valor
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 21:23.