PHP-Swap-Monat und Tag in Zeitstempel
Frage
Richtig. Ich war eine Last von Daten in einer MySQL-DB eingefügt und verwendet die folgende den Zeitstempel zu generieren:
$stamp = mktime($t[0], $t[1], $t[2], $d[2], $d[1], $d[0]);
Leider ist der Tag und Monat wurden gemischt, um, und unten ist der korrekte Zeitstempel.
$stamp = mktime($t[0], $t[1], $t[2], $d[1], $d[2], $d[0]);
Es ist etwa 5000 Datensätze. Was ist der einfachste Weg, um eine Bulk-Aktualisierung und Korrektur?
zu tunVielen Dank!
Lösung
Hat die Datenbank-Engine ermöglicht es Ihnen unmöglich Daten einfügen, oder Sie haben keinen Termin mit dem Tag-Feld> 12
In jedem Fall können Sie wahrscheinlich fixieren Sie es mit einer Update-Anweisung, aber die Syntax ist abhängig von der Datenbank-Engine Sie verwenden.
Für MySQL verwenden Sie:
UPDATE myTable SET dateColumn = STR_TO_DATE(DATE_FORMAT(dateColumn, '%d-%c-%Y %T'), '%c-%d-%Y %T')
Andere Tipps
Sie können nicht. Als Erklärung, werde ich ein Beispiel:
Angenommen, Sie gemeint: 13. Tag, Monat 2, Jahr 1990 Aber das war zu lesen, wie: 2. Tag, Monat 13, Jahr 1990 Da die Monate im Jahr nur auf 12 steigen, würde dies als behandelt werden: 2. Tag, Monat 1, Jahr 1991
Aber wenn Sie gemeint: 1. Tag, Monat 2, Jahr 1991 Dies hätte lesen als: 2. Tag, Monat 1, Jahr 1991
Also, wenn Sie sehen, Tag 2, Monat 1 Jahr 1991 in der Datenbank, die aus kam es?
Das ist wie wenn man sagt, ich eine ganze Zahl quadriert, und das Ergebnis ist 36. Was habe ich mit beginnen, -6 oder 6?