Ver Mensaje Individual
  #3 (permalink)  
Antiguo 07/03/2009, 13:17
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: llenar tabla con fechas

frasko01,
seguramente puedas hacerlo con un procedimiento almacenado o de algún otro modo; yo he hecho alguna prueba con programación y consultas de inserción mediante iteración a la base de datos; un pequeño programa de unas líneas me ha incluido casi 30.000 registros en unos segundos, pero he observado que sólo me cubre hasta el primer día de 2038. Todavía no he encontrado la causa, aunque probablemente tenga que ver con los rangos de años que cubren las diferentes funciones utilizadas por mí en PHP y MysQL. Tengo que verlo. Lo que sí te digo ahora es que no debes usar TinyInt(4) para año, sino un int(11) o un campo de tipo YEAR. No puedo ponerte aquí el código PHP que me sirve para restar los días entre la fecha y luego hacer la iteración. Lo que sí puedo ponerte aquí es la parte de MySQL
insert into nombretabla (dia, mes, ano) VALUES (date_format(date_add('2009/01/01',INTERVAL @cont day), '%d'), date_format(date_add(''2009/01/01',INTERVAL @cont day), '%m'), date_format(date_add('2009/01/01',INTERVAL @cont day),'%Y'))

@cont es el contador de la iteración que va desde 0 hasta el número de días de diferencia entre el comienzo y final. En cuanto a marcado, no tienes que hacer nada, creas el campo, le pones que no aceptas NULL, y valor por defecto 0. Cuando inserte el otro campo, cargará 0 en cada registro.

Última edición por jurena; 10/03/2009 a las 01:49