sql >> Database >  >> RDS >> Mysql

Converteer string/varchar naar datum tussen MySQL-tabellen

Kijk eens naar STR_TO_DATE functie:

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

En dan dezelfde zoekopdracht, met datumnotatie als '%m/%d/%Y' , en dan opnieuw met '%M %D, %Y' .Als de indeling niet overeenkomt, retourneert STR_TO_DATE NULL en worden de rijen niet bijgewerkt.

Als u uw bestaande gegevens in een nieuwe tabel wilt invoegen, kunt u zoiets als dit gebruiken:

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 is een datumkolom, en je kunt dan opmaken hoe je wilt met PHP of met DATE_FORMAT)



  1. Selecteer huidige maanden records mysql uit de tijdstempelkolom

  2. Hoe kan SQL Workload Analysis u helpen?

  3. Hoe mysql bijwerken met python waar velden en vermeldingen uit een woordenboek komen?

  4. Relationeel databasebeheersysteem (RDBMS):MSSQL versus MySQL