O Servidor MySQL não apresenta nenhum
        problema com o ano 2000 (Y2K compatível)
      
            O Servidor MySQL usa funções de tempo
            Unix que tratam datas até o ano 2037
            para valores TIMESTAMP; para valores
            DATE e DATETIME, datas
            até o ano 9999 são aceitas.
          
            Todas as funções de data do MySQL
            estão no arquivo sql/time.cc e
            codificadas com muito cuidado para ser compatível com o ano
            2000.
          
            No MySQL versão 3.22 e posterior, o novo
            tipo de campo YEAR pode armazenar anos
            0 e 1901 até
            2155 em 1 byte e mostrá-lo usando 2 ou 4
            dígitos. Todos os anos de 2 dígitos são considerados
            estar na faixa de 1970 até
            2069; o que significa que se você
            armazenar 01 em uma coluna
            YEAR, O Servidor MySQL
            o tratará como 2001.
          
        O seguinte demonstração simples ilustra que o MySQL
        Server não tem nenhum problema com datas até depois
        do ano 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.00 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),->("2050-01-01","2050-01-01 00:00:00",20500101000000);Query OK, 13 rows affected (0.01 sec) Records: 13 Duplicates: 0 Warnings: 0 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 | | 2050-01-01 | 2050-01-01 00:00:00 | 00000000000000 | +------------+---------------------+----------------+ 13 rows in set (0.00 sec)
        O valor da coluna TIMESTAMP final é zero
        porque o ano final (2050) excede o
        TIMESTAMP maximo. O tipo de dados
        TIMESTAMP, que é usado para armazenar a hora
        atual, suporta valores na faixa de
        19700101000000 a
        20300101000000 em máquinas 32 bits (valor
        com sinal). Em máquinas de 64 bits,
        TIMESTAMP trata valores até
        2106 (valores sem sinal).
      
        O exemplo mostra que os tipos DATE e
        DATETIME não tem problemas com as datas
        usadas. Eles irão conseguir trabalhar com datas até o ano
        9999.
      
        Embora o MySQL Server seja seguro em
        relação ao ano 2000, você pode ter problemas se você usá-lo
        com aplicações que não são seguras com o ano 2000. Por
        exemplo, muitas aplicações antigas armazenam ou manipulam anos
        usando valores de 2 digitos (que são ambíguos) em vez de 4
        dígitos. Este problema pode ser aumentado por aplicações que
        usam valores como 00 ou 99
        como indicadores de valores ``perdidos''. Infelizmente, estes
        problemas pode ser difíceis de corrigir, cada um deles pode
        usar um conjunto diferente de convenções e funções de
        tratamento de datas.
      
        Assim, apesar do Servidor MySQL não ter
        problemas com o ano 2000, é de responsabilidade de sua
        aplicação fornecer datas que não sejam ambíguas. Veja
        Secção 6.2.2.1, “Assuntos referentes ao ano 2000 (Y2K) e Tipos de Data” para as regras do Servidor
        MySQL para lidar com entrada de datas ambíguas que
        contenham valores de ano com 2 dígitos.
      
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

