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

Konvertieren Sie String/Varchar in das Datum zwischen MySQL-Tabellen

Siehe STR_TO_DATE Funktion:

UPDATE yourtable
SET
  new_column = STR_TO_DATE(varchar_date, '%m-%d-%Y')
WHERE
  STR_TO_DATE(varchar_date, '%m-%d-%Y') IS NOT NULL

Und dann dieselbe Abfrage, mit Datumsformat als '%m/%d/%Y' , und dann wieder mit '%M %D, %Y' .Wenn das Format nicht übereinstimmt, gibt STR_TO_DATE NULL zurück und Zeilen werden nicht aktualisiert.

Wenn Sie Ihre vorhandenen Daten in eine neue Tabelle einfügen möchten, können Sie Folgendes verwenden:

INSERT INTO new_table (ID, col1, col2, new_column)
SELECT
  ID, col1, col2,
  COALESCE(STR_TO_DATE(varchar_date, '%m-%d-%Y'),
           STR_TO_DATE(varchar_date, '%m/%d/%Y'),
           STR_TO_DATE(varchar_date, '%M %D, %Y'))
FROM oldtable

(new_column ist eine Datumsspalte, und Sie können sie dann mit PHP oder mit DATE_FORMAT formatieren, wie Sie möchten)