phpmyadmin exportação de data int (11) para formato CSV dd / mm / aa - mysql, sql, phpmyadmin

Sou novo no SQl e estou tentando fazer um dump através do phpmyadmin.

No momento, os dados de data são armazenados no meu banco de dados como int (11).

Quando eu exporto do phpmyadmin, os dados são naturalmente exportados como números como "1325336400", mas eu gostaria que isso fosse exibido como 01/01/2012 ou formato similar. Existe alguma maneira de fazer isso?

Muito obrigado antecipadamente

Jus

Respostas:

1 para resposta № 1

Se você está armazenando seus "dados de data" (como você diz) em números inteiros de 32 bits, acho que você está usando valores de data e hora * nix (segundos desde a época de 1 de janeiro de 1970 às 00:00 UTC).

(Você sabe que isso pode transbordar em algum momento de 2038, certo? http://en.wikipedia.org/wiki/Year_2038_problem)

O phpmyadmin tem dificuldade com esses valores, como você descobriu.

O MySQL possui um tipo de dados TIMESTAMP que também usa timestamps estilo * nix. (Não vai estourar; os desenvolvedores do MySQL fizeram a coisa certa.)

Você realmente precisa converter seus dados de data para o tipo de dados TIMESTAMP. Caso contrário, lidar com o tempo será uma dor enorme no pescoço, para sempre. Aqui está como fazer isso.

Primeiro, adicione uma coluna à sua tabela dessa maneira,

ALTER TABLE mytable ADD COLUMN ts TIMESTAMP AFTER myinttimestamp

Em seguida, preencha seu novo ts coluna usando os valores que você já possui.

UPDATE TABLE mytable SET ts = FROM_UNIXTIME(myinttimestamp)

Em seguida, altere a definição de sua nova coluna para que ela não permita valores NULL e use a hora atual como padrão:

ALTER TABLE mytable
CHANGE ts
ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL

Finalmente, se você quiser, pode se livrar da coluna antiga com os valores INT nela.

ALTER TABLE mytable DROP COLUMN myinttimestamp

(Você deve considerar tentar tudo isso em uma cópia de sua tabela; isso poderia atrapalhar a tentativa de cometer um erro e destruir seus dados).

Quando você usa o TIMESTAMP tipo de dados, o MySQL faz o possível para armazenar todos esses timestamps internamente no tempo UTC (time-zone-insensitive), e convertê-los para a hora local no display, com base em como você configura

 SET time_zone = "Asia/Vladivostok"

como queiras. Ele também os converterá da hora local para a hora UTC quando você os colocar na base de dados.

Aqui está um write up.

https://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html


Cardápio