Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Konvertieren zwischen unlogisch formatierten Datumsangaben (ändern von /slash/ in -dash- )

$start_date = date('Y-m-d', strtotime(str_replace('/', '-', $query->row('startdate'))));

Oder noch besser - ändern Sie einfach die Daten in der Datenbank:

UPDATE `table` SET `startdate` = REPLACE(`startdate`, '/', '-');

... und konvertieren Sie dann das Feld in den Typ DATE.

---- BEARBEITEN ----

Eigentlich hat Col. Shrapnel Recht ... Ich hatte übersehen, dass das Datum auch umgedreht werden muss, also ist es JJJJ-MM-TT; Angenommen, das ursprüngliche Datum hat das Format TT/MM/JJJJ, könnte eine bessere Abfrage so aussehen:

UPDATE `table` SET `date` = CONCAT(SUBSTRING(`date`, 7), '-', SUBSTRING(`date`, 4, 2), '-', SUBSTRING(`date`, 1, 2))

Dadurch werden die Komponententeile in eine Zeichenfolge umgewandelt, die in ein DATUM konvertiert werden kann ... es funktioniert nicht ganz, wenn die ursprüngliche Datumszeichenfolge keine führenden Nullen verwendet 1/6/2011 zum Beispiel... müsste in diesem Fall etwas cleverer vorgehen.