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

Encontrar el rango al que pertenece una fecha

Estas en el tema de Encontrar el rango al que pertenece una fecha en el foro de Mysql en Foros del Web. Hola. Nunca he sabido plantear esta pregunta, y por eso mi búsqueda ha sido infructuosa. Entonces me atrevo a hacer aquí mi consulta. Gracias por ...
  #1 (permalink)  
Antiguo 05/03/2012, 21:50
 
Fecha de Ingreso: febrero-2012
Ubicación: México
Mensajes: 227
Antigüedad: 12 años, 9 meses
Puntos: 48
Encontrar el rango al que pertenece una fecha

Hola.

Nunca he sabido plantear esta pregunta, y por eso mi búsqueda ha sido infructuosa. Entonces me atrevo a hacer aquí mi consulta. Gracias por su tiempo.
  • Tengo una tabla que contiene cuadro campos, un ID (autogenerado), una zona («Zona 1» hasta «Zona 8»), un campo Fecha_Inicial y otro Fecha_Final.
  • El intervalo entre Fecha_Inicial y Fecha_Final es variable, pero siempre es igual o mayor que 1 e igual o menor que 7.
  • El primer registro empieza el 2012/01/01 como fecha_inicial y el último termina con 2012/12/31.
  • A cada intervalo le corresponde una y sola una Zona.

Código:
ID|Zona| fInicial |  fFinal
--+----+----------+----------
01| 01 |2012-01-01|2012-01-06
02| 01 |2012-01-07|2012-01-07
03| 03 |2012-01-08|2012-01-12
04| 02 |2012-01-13|2012-01-19
05| 03 |2012-01-20|2012-01-25
06| 02 |2012-01-26|2012-01-30
Mi pregunta es:

Dado un TIMESTAMP (2012-01-15 21:46:41), cómo puedo saber el ID y la Zona asignada a esa fecha.

Gracias de nuevo por su tiempo.
  #2 (permalink)  
Antiguo 06/03/2012, 01:15
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: Encontrar el rango al que pertenece una fecha

Primero tendrías que definir INTERVALO, me parece que te refieres a la diferencia entre fecha final y fecha inicial.
Respecto de la pregunta, la respuesta obvia es
SELECT * FROM tabla WHERE (FIN-INICIO) = '';
El ID y la Zona serán unicos siempre y cuando el "intervalo" sea único. El problema es que por lo que muestras, no guardas timestamp en la db sino fechas, por lo cual hay una falta de precisión que te impedirá hacer las consultas correctamente. O modificas el tipo de dato o simplificas el timestamp perdiendo precision. Hay muchas funciones de fecha / hora en mysql, consulta el manual. Parece más bien un problema de diseño que de SQL, saludos
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 07/03/2012, 08:32
 
Fecha de Ingreso: enero-2010
Ubicación: Estelí, Nicaragua
Mensajes: 157
Antigüedad: 14 años, 10 meses
Puntos: 8
Respuesta: Encontrar el rango al que pertenece una fecha

hola, puedes probar lo siguiente:

Código MySQL:
Ver original
  1. select id,zona from tabla where date(fecha_a_buscar) between finicial and ffinal

Etiquetas: encontrar, fecha, rango, tabla, campos
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 10:01.