Domanda

Giusto.Stavo inserendo un carico di dati in un DB MySQL e ho utilizzato quanto segue per generare il timestamp:

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

Sfortunatamente, il giorno e il mese sono stati invertiti e di seguito è riportato il timestamp corretto.

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

Si tratta di circa 5.000 record.Qual è il modo più semplice per eseguire un aggiornamento e una correzione collettivi?

Molte grazie!

È stato utile?

Soluzione

Ha il motore di database permetterà di inserire date impossibili, o non si dispone di una data con il campo Giorno> 12

In ogni caso, probabilmente si può risolvere il problema con una sola dichiarazione di aggiornamento, ma la sintassi dipende dal motore di database utilizzato.

Per MySQL si usa:

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

Altri suggerimenti

Non puoi.A titolo esplicativo faccio un esempio:

Supponiamo che tu intendessi:Giorno 13, mese 2, anno 1990 ma questo è stato letto come:Giorno 2, mese 13, anno 1990 Dal momento che i mesi in un anno vanno solo fino a 12, questo sarebbe trattato come:Giorno 2, mese 1, anno 1991

Ma supponiamo che tu intendessi:Giorno 1, mese 2, anno 1991 Questo sarebbe stato letto come:Giorno 2, mese 1, anno 1991

Quindi se vedi il giorno 2, mese 1, anno 1991 nel database, da dove proviene?

È come dire che ho elevato al quadrato un numero intero e il risultato è 36.Con quale ho iniziato, -6 o 6?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top