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

Combinar 2 campos?

Estas en el tema de Combinar 2 campos? en el foro de Mysql en Foros del Web. Hola, Tengo una tabla con los siguientes campos: dia mes anio diainicio mesinicio anioinicio Se trata de un registro de eventos los cuales se separan ...
  #1 (permalink)  
Antiguo 31/12/2010, 11:59
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 15 años, 3 meses
Puntos: 8
Combinar 2 campos?

Hola,

Tengo una tabla con los siguientes campos:

dia
mes
anio
diainicio
mesinicio
anioinicio


Se trata de un registro de eventos los cuales se separan en dos categorías, Normal y Multimedia. Si los eventos son Normales se registra el dia, mes y año en los 3 primeros campos indicados. Si es multimedia registra el dia, mes y año de inicio en los 3 últimos campos de arriba (además también registra la fecha de finalización pero no viene al tema).

El punto es que al hacer la consulta para mostrar los 15 ultimos eventos registrados hago lo siguiente:

Código PHP:
Ver original
  1. $sql = "SELECT * FROM eventos ORDER BY mes OR mesinicio OR dia OR diainicio DESC LIMIT 0,15";

Lo que me muestra los resultados pero en desorden. Mi intención es combiar el campo diainicio con el campo dia, y el campo mesinicio con el campo mes. De esta manera registraria la fecha de realización o fecha de inicio del evento en un mismo campo y ya no tendria problemas al hacer la consulta en la base de datos.

Espero su ayuda :)
  #2 (permalink)  
Antiguo 31/12/2010, 14:31
Avatar de ikaroraul  
Fecha de Ingreso: octubre-2006
Ubicación: La Paz
Mensajes: 391
Antigüedad: 18 años, 1 mes
Puntos: 16
Respuesta: Combinar 2 campos?

Porque no combinas la fecha en 1 solo campo de tipo DATE con eso te facilitara mejor, no veo la razon para separarla, y si quieres buscar por meses, dias o años puedes usar:

where DAY(fecha)='9'
where MONTH(fecha)='12'
where YEAR(fecha)='2011'

dependiendo a cual sea tu necesidad.

Espero que sea de ayuda
Saludos
__________________
Msn: [email protected]
  #3 (permalink)  
Antiguo 31/12/2010, 14:59
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 15 años, 3 meses
Puntos: 8
Respuesta: Combinar 2 campos?

gracias por tu respuesta!

el problema es que mi base de datos ya tiene como medio año funcionando y los registros se han ido guardando de esa manera, por lo que seria mucho trabajo crear un campo tipo DATE y actualizar los registros uno por uno... por eso buscaba la forma al menos de unir los campos mencionados: diainicio con dia y que sean un solo campo (campo dia). De igual manera con los de Mes.
  #4 (permalink)  
Antiguo 31/12/2010, 17:39
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Combinar 2 campos?

Cita:
el problema es que mi base de datos ya tiene como medio año funcionando y los registros se han ido guardando de esa manera, por lo que seria mucho trabajo crear un campo tipo DATE y actualizar los registros uno por uno... por eso buscaba la forma al menos de unir los campos mencionados: diainicio con dia y que sean un solo campo (campo dia). De igual manera con los de Mes.
En realidad, no. Solamente requiere tres sentencias:
Código MySQL:
Ver original
  1. ALTER TABLE tabla
  2.     ADD COLUMN fecha DATE,
  3.     ADD COUMN fecha_inicio DATE;
  4.  
  5. UPDATE tabla
  6.     SET fecha = DATE(CONCAT(anio,  '-', mes,  '-', dia)),
  7.     fecha_inicio=DATE(CONCAT(anioinicio, '-', mesinicio,  '-', diainicio));
  8.  
  9.     DROP COLUMN anio,
  10.     DROP COLUMN mes,
  11.     DROP COLUMN dia,
  12.     DROP COLUMN anioinicio,
  13.     DROP COLUMN mesinicio,
  14.     DROP COLUMN diainicio;

Tal modificación posiblemente te simplifique todas las consultas de tiempo que hagas en el futuro, mientras que de hacerlas como las tienes ahora lo único que lograrás es complicarte la vida corrigiendo sintaxis y lógica cada vez que tengas que crear una.
El problema de realizar esta modificación es que deberás revisar todas las consultas ya desarrolladas.

Esta es la razón por la cual mis profesores decían siempre en las primeras clases de bases de datos que "una base debe estar bien diseñada desde el principio. Diseñarla mal implica muchos problemas en el futuro, porque parchar una base en trabajo implica un enorme esfuerzo y muchos problemas".

Siempre recuerdo ese consejo.
__________________
¿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 01/01/2011, 10:13
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 15 años, 3 meses
Puntos: 8
Respuesta: Combinar 2 campos?

Muchas gracias! tomare muy en cuenta el consejo desde ahora.

Ya esta solucionado. Saludos!

Última edición por kenproxd; 01/01/2011 a las 10:37

Etiquetas: campos, combinar
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:57.