MySQL Server por sí mismo no tiene problemas de conformidad con el año 2000 (Y2K):
            MySQL Server utiliza funciones de tiempo Unix que tratan las
            fechas hasta el año 2037 para valores
            TIMESTAMP. Para valores
            DATE y DATETIME, se
            aceptan fechas hasta el año 9999.
          
            Todas las funciones de fecha MySQL se implementan en un
            mismo fichero fuente, sql/time.cc, y
            están programados cuidadosamente para no tener problemas
            con el año 2000.
          
            En MySQL 5.0 y posterior, el tipo de columna
            YEAR puede almacenar los años
            0 y 1901 hasta
            2155 en un byte y mostrarlo usando de dos
            a cuatro dígitos. Todos los años de dos dígitos se
            consideran en el rango 1970 hasta
            2069, lo que significa que si almacena
            01 en una columna de tipo
            YEAR, MySQL Server lo trata como
            2001.
          
        La siguiente demostración ilustra que MySQL Server no tiene
        problemas con valores DATE o
        DATETIME hasta el año 9999, ni tampoco tiene
        problemas con valores de tipo TIMESTAMP hasta
        el año 2030:
      
mysql> DROP TABLE IF EXISTS y2k;
Query OK, 0 rows affected (0.01 sec)
mysql> CREATE TABLE y2k (date DATE,
    ->                   date_time DATETIME,
    ->                   time_stamp TIMESTAMP);
Query OK, 0 rows affected (0.01 sec)
mysql> INSERT INTO y2k VALUES
    -> ('1998-12-31','1998-12-31 23:59:59',19981231235959),
    -> ('1999-01-01','1999-01-01 00:00:00',19990101000000),
    -> ('1999-09-09','1999-09-09 23:59:59',19990909235959),
    -> ('2000-01-01','2000-01-01 00:00:00',20000101000000),
    -> ('2000-02-28','2000-02-28 00:00:00',20000228000000),
    -> ('2000-02-29','2000-02-29 00:00:00',20000229000000),
    -> ('2000-03-01','2000-03-01 00:00:00',20000301000000),
    -> ('2000-12-31','2000-12-31 23:59:59',20001231235959),
    -> ('2001-01-01','2001-01-01 00:00:00',20010101000000),
    -> ('2004-12-31','2004-12-31 23:59:59',20041231235959),
    -> ('2005-01-01','2005-01-01 00:00:00',20050101000000),
    -> ('2030-01-01','2030-01-01 00:00:00',20300101000000),
    -> ('2040-01-01','2040-01-01 00:00:00',20400101000000),
    -> ('9999-12-31','9999-12-31 23:59:59',99991231235959);
Query OK, 14 rows affected (0.01 sec)
Records: 14  Duplicates: 0  Warnings: 2
mysql> SELECT * FROM y2k;
+------------+---------------------+----------------+
| date       | date_time           | time_stamp     |
+------------+---------------------+----------------+
| 1998-12-31 | 1998-12-31 23:59:59 | 19981231235959 |
| 1999-01-01 | 1999-01-01 00:00:00 | 19990101000000 |
| 1999-09-09 | 1999-09-09 23:59:59 | 19990909235959 |
| 2000-01-01 | 2000-01-01 00:00:00 | 20000101000000 |
| 2000-02-28 | 2000-02-28 00:00:00 | 20000228000000 |
| 2000-02-29 | 2000-02-29 00:00:00 | 20000229000000 |
| 2000-03-01 | 2000-03-01 00:00:00 | 20000301000000 |
| 2000-12-31 | 2000-12-31 23:59:59 | 20001231235959 |
| 2001-01-01 | 2001-01-01 00:00:00 | 20010101000000 |
| 2004-12-31 | 2004-12-31 23:59:59 | 20041231235959 |
| 2005-01-01 | 2005-01-01 00:00:00 | 20050101000000 |
| 2030-01-01 | 2030-01-01 00:00:00 | 20300101000000 |
| 2040-01-01 | 2040-01-01 00:00:00 | 00000000000000 |
| 9999-12-31 | 9999-12-31 23:59:59 | 00000000000000 |
+------------+---------------------+----------------+
14 rows in set (0.00 sec)
        Los dos últimos valores de columna TIMESTAMP
        son cero porque los valores de año (2040,
        9999) excede el máximo de
        TIMESTAMP. El tipo de datos
        TIMESTAMP que se usa para almacenar el tiempo
        actual, soporta valores del rango
        19700101000000 hasta
        20300101000000 en máquinas de 32-bit
        (valores con signo). En máquinas de 64-bit,
        TIMESTAMP trata valores hasta
        2106 (valores sin signo).
      
        Aunque MySQL Server por sí mismo no tiene problemas con el año
        2000, puede tenerlos si interactúa con aplicaciones que sí los
        tengan. Por ejemplo, muchas aplicaciones antiguas almacenan o
        manipulan años usando valores de dos dígitos (que son
        ambíguos) en lugar de cuatro dígitos. Este problema puede
        darse por aplicaciones que usan valores tales como
        00 o 99 como indicadores
        de valores "perdidos". Por desgracia, estos problemas pueden ser
        complicados de arreglar, ya que aplicaciones diferentes pueden
        haber sido programadas por distintos programadores, cada uno de
        los cuales puede usar una serie de distintas convenciones y
        funciones de fechas.
      
Así, aunque MySQL Server no tiene problemas con el año 2000, es la responsabilidad de la aplicación de proporcionar entradas inambíguas. Consulte Sección 11.3.4, “Efecto 2000 (Y2K) y tipos de datos” para las reglas de MySQL Server para tratar fechas ambíguas de dos digitos.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

