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

Mostrar historial de rutas con SQL

Estas en el tema de Mostrar historial de rutas con SQL en el foro de Mysql en Foros del Web. Hola, Necesito hacer una consulta en php y mysql que me muestre el historial de unas fechas. Dispongo de dos tablas, una de ellas se ...
  #1 (permalink)  
Antiguo 27/06/2008, 10:47
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años
Puntos: 3
Mostrar historial de rutas con SQL

Hola,

Necesito hacer una consulta en php y mysql que me muestre el historial de unas fechas.

Dispongo de dos tablas, una de ellas se llama "rutas" con los campos:
id | nombre | anio | ....
La otra se llama "fechas" con los campos:
id | dia | mes | ...

Una ruta puede tener varias fechas de salida.

¿Como puedo hacer para sacar rutas con las fechas ya pasadas?
para convertir la fecha a date uso:
TIMESTAMP(CONCAT(rutas.anio, '-', fechas.mes, '-', fechas.dia)) >= TIMESTAMP(DATE_FORMAT(NOW(),'%Y-%m-%d'))

¿Me podéis ayudar?

Muchas Gracias
  #2 (permalink)  
Antiguo 27/06/2008, 11:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Mostrar historial de rutas con SQL

Tema trasladado a MySQL.
  #3 (permalink)  
Antiguo 29/06/2008, 03:52
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años
Puntos: 3
Respuesta: Mostrar historial de rutas con SQL

¿Alguien me puede ayudar? Estoy bloqueado y nose como ponerlo.

Muchas Gracias
  #4 (permalink)  
Antiguo 29/06/2008, 05:24
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Mostrar historial de rutas con SQL

yazo,
dinos con ejemplos de tus datos y con los campos que tienes, qué quieres buscar exactamente. Es decir, ponnos un ejemplo concreto de consulta con los datos que tienes, los resultados que quieres sacar y el modo de mostrarlos.
Lo que no entiendo es por qué separas año en una tabla y mes y día en otra. Lo lógico hubiera sido
tablaruta
idruta
detallesruta

tablarutashechas
fecharuta campo tipo DATE
idruta

En cuanto a tu problema con el concat, creo que se debe a que año, mes y día lo tienes como numéricos y para concatenarlos tienes que hacer un casting a varchar. Luego tendrás que hacer un cast a date de todo ello y luego convertir mediante UNIX_TIMESTAMP a timestamp para poder comparar con otro timestamp. Puede hacerse, pero contempla mi otra propuesta. Si finalmente quieres hacerlo como lo tienes, deberías hacer algo parecido a esto (considero que pones el número de mes y día con un sólo dígito cuando es inferior a 10). En tu caso, no es necesario recurrir a timestamp y puede hacerse con date.
Cita:
SELECT CAST(CONCAT(cast(rutas.anio as char), IF (fechas.mes < 10, CONCAT ('0',cast(fechas.mes as char)), cast(fechas.mes as char)), IF (did < 10, CONCAT ('0',cast(fechas.dia as char)), cast(fechas.dia as char))) AS DATE) AS FECHACOMPLETA from tutabla ... [cruce de tablas con INNER JOIN]... WHERE CAST(CONCAT(cast(rutas.anio as char), IF (fechas.mes < 10, CONCAT ('0',cast(fechas.mes as char)), cast(fechas.mes as char)), IF (did < 10, CONCAT ('0',cast(fechas.dia as char)), cast(fechas.dia as char))) AS DATE) <= CURDATE()

Última edición por jurena; 29/06/2008 a las 10:20
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:59.