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

[SOLUCIONADO] Evaluar FECHA en campo text con varias fechas.

Estas en el tema de Evaluar FECHA en campo text con varias fechas. en el foro de Mysql en Foros del Web. Que tal buen día. Supongamos que tengo un campo de TEXT así: "2016-02-05/2016-02-01,2016-02-15/2016-02-10". La fecha 1 sería "2016-02-05/2016-02-01". Y la fecha 2 sería "2016-02-15/2016-02-10". Y ...
  #1 (permalink)  
Antiguo 15/02/2016, 11:31
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Evaluar FECHA en campo text con varias fechas.

Que tal buen día. Supongamos que tengo un campo de TEXT así:

"2016-02-05/2016-02-01,2016-02-15/2016-02-10".

La fecha 1 sería "2016-02-05/2016-02-01".
Y la fecha 2 sería "2016-02-15/2016-02-10".

Y así podría haber n numero de fechas/rangos.

Como puedo evaluar si "2016-02-03" no está dentro de cada uno de los rangos que hay entre las fechas del campo TEXT?

Saludos

Última edición por rodocoyote15; 15/02/2016 a las 11:38
  #2 (permalink)  
Antiguo 15/02/2016, 11:41
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Evaluar FECHA en campo text con varias fechas.

y porque tienes los datos de esa manera???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 15/02/2016, 11:54
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Evaluar FECHA en campo text con varias fechas.

Porque es un sitio de alquiler, el producto lo pueden reservar N veces, un cliente lo puede reservar para hoy y hasta mañana, y otro lo reserva de mañana hasta en 8 días, y así puede reservarlo de nuevo otro cliente y etc. etc, entonces hago una especie de 'arreglo' con todos esos datos.

Por lo que en DATETIME no me permite crear 'grupos' de fecha, saludos :D
  #4 (permalink)  
Antiguo 15/02/2016, 11:56
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, 5 meses
Puntos: 2658
Respuesta: Evaluar FECHA en campo text con varias fechas.

Cita:
Iniciado por rodocoyote15 Ver Mensaje
Que tal buen día. Supongamos que tengo un campo de TEXT así:

"2016-02-05/2016-02-01,2016-02-15/2016-02-10".

La fecha 1 sería "2016-02-05/2016-02-01".
Y la fecha 2 sería "2016-02-15/2016-02-10".

Y así podría haber n numero de fechas/rangos.

Como puedo evaluar si "2016-02-03" no está dentro de cada uno de los rangos que hay entre las fechas del campo TEXT?

Saludos
Eso se llama "campo multivaluado", están prohibidos en el modelo relacional de bases de datos, y sólo sirven para tener dolores de cabeza, problemas para crear consultas, generar inconsistencias y redundancia de datos, y faltas enormes de optimización.

En serio, ¿por qué tienes datos asi?

Si quieres una solución en serio, ese tipo de campos no sirve. No hay modo de optimizar la consulta, por más que es posible hacer la query que quieres.

Eso sí: Desde ya, olvidate de verificar rangos con datos guardados asi. NO puedes hacerlo por medio de SQL, deberías hacerlo por programación.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 15/02/2016, 11:57
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Evaluar FECHA en campo text con varias fechas.

Como podría resolver una situación así entonces? Ya que no creo que tampoco sea buena idea crear una columna por cada vez que lo reservan. O sería cuestión de tratarlo desde php?

Edito. No leí la última línea de tu mensaje, entonces creo que sí tendría que hacerlo por programación. Muchas gracias @gnzsoloyo, estaría bien si me pudieras decir como resolverías una situación así desde sql, saludos :D
  #6 (permalink)  
Antiguo 15/02/2016, 12:02
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Evaluar FECHA en campo text con varias fechas.

No una columna, pero si podrias tratarlo con un renglon de datos, digamos con 3 columnas

cliente_reserva fecha_inicio fecha_fin

con eso ya podrias manejar las consultas como quieras.... ya si un cliente reserva 2 veces pues le pones 2 renglones....
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 15/02/2016, 13:03
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, 5 meses
Puntos: 2658
Respuesta: Evaluar FECHA en campo text con varias fechas.

En otras palabras, como te lo explica Libras, el modelo de datos está mal diseñado.
Si tienes N clientes, y cada cliente puede alquilar un producto N veces, y también N productos, lo que te falta es la tabla Alquiler_Producto, que representa la relación N:M del alquiler.
COn ese esquema puedes tener N veces el mismo cliente relacionado N veces con el mismo producto, y validar que antes de alquilarlo de nuevo, haya terminado el alquiler anterior.
También con ese esquema, verificar si una fecha cae entremedio de inicio y fin de alquileres, es un nivel de tontería básica:
Código MySQL:
Ver original
  1. SELECT ...
  2. FROM ...
  3. WHERE fechabuscada BETWEEN fecha_inicio AND fecha_fin
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 15/02/2016, 14:48
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Evaluar FECHA en campo text con varias fechas.

Genial, con los dos me han aclarado un poco la forma de guardar dicha información, y hasta se me facilitó realizar unas cuantas operaciones más. Gracias a ambos!
  #9 (permalink)  
Antiguo 17/02/2016, 14:26
 
Fecha de Ingreso: febrero-2015
Mensajes: 8
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: Evaluar FECHA en campo text con varias fechas.

Buena tarde.

Lo ideal (según mi punto de vista) es que si tienes ya una tabla "productos" y estos se alquilarán n veces supongo que tambien tienes una tabla "clientes", por lo que lo ideal será tener una tercera tabla de detalle que almacene los productos que cada cliente ha alquilado algo así como "productos_alquilados" y relacionas ambas tablas dentro de esta última.

Con lo anterior logras tener una estructura referencial más dinámica y segura.

Saludos,

Atte.

TheKillerGt

Etiquetas: campo, evaluar, fecha, text
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 05:31.