sql >> Databasteknik >  >> RDS >> Mysql

Konvertera sträng/varchar till datum mellan MySQL-tabeller

Ta en titt på 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

Och sedan samma fråga, med datumformat som '%m/%d/%Y' , och sedan igen med '%M %D, %Y' .Om formatet inte matchar returnerar STR_TO_DATE NULL och rader uppdateras inte.

Om du vill infoga dina befintliga data i en ny tabell kan du använda något i stil med detta:

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 är en datumkolumn, och du kan sedan formatera hur du vill med PHP eller med DATE_FORMAT)



  1. Använda ODBC med Salesforce och OneLogin Single Sign On (SSO)

  2. Django grupperar efter datum och SUM-värden

  3. Oracle/SQL:Varför frågar SELECT * FROM-poster WHERE rownum>=5 AND rownum <=10 - returnerar noll rader

  4. Sparse Columns i SQL Server:Inverkan på tid och rum