Pergunta

Right. I foi a inserção de uma carga de dados em um banco de dados MySQL e usado o seguinte para gerar o carimbo do tempo:

$stamp = mktime($t[0], $t[1], $t[2], $d[2], $d[1], $d[0]);

Infelizmente, o dia eo mês foram misturados ao redor, e abaixo é a hora correta.

$stamp = mktime($t[0], $t[1], $t[2], $d[1], $d[2], $d[0]);

Trata-se 5.000 registros. Qual é a maneira mais fácil de fazer uma atualização em massa e correção?

Muito obrigado!

Foi útil?

Solução

Será que o motor de banco de dados permitem que você inserir datas impossíveis, ou você não tem qualquer data com o campo Day> 12?

Em qualquer caso, você provavelmente pode corrigi-lo com uma instrução de atualização, mas a sintaxe é dependente do mecanismo de banco de dados que você usa.

Para o MySQL você usaria:

UPDATE myTable SET dateColumn = STR_TO_DATE(DATE_FORMAT(dateColumn, '%d-%c-%Y %T'), '%c-%d-%Y %T')

Outras dicas

Você não pode. A título de explicação, vou dar um exemplo:

Suponha que você queria dizer: Dia 13, mês 2, ano de 1990 Mas isso foi lido como: Dia 2, mês 13, ano de 1990 Uma vez que os meses em um ano só vão até 12, este seria tratado como: Dia 2, mês 1, Ano 1991

Mas suponha que você queria dizer: Dia 1, mês 2, ano 1991 Este teria sido lido como: Dia 2, mês 1, Ano 1991

Então, se você vê dia 2, mês 1, ano 1991 no banco de dados, que veio isso?

Isso é como dizer, eu quadrado um inteiro, e o resultado é 36. Que eu começar, -6 ou 6?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top