mySQL str_to_date() function returns error

前端 未结 3 447
情书的邮戳
情书的邮戳 2021-01-13 14:30

I keep receiving an error message when trying to convert a column, CreatedDate, of string date values in my Estimates table into the mySQL date format using str_to_date(). M

3条回答
  •  走了就别回头了
    2021-01-13 15:27

    The usual strategy for cleaning up data like this is as follows:

    ALTER TABLE Estimates CHANGE COLUMN CreatedDate CreatedDateString VARCHAR(255);
    ALTER TABLE Estimates ADD COLUMN CreatedDate DATE
    
    UPDATE Estimates SET CreatedDate=STR_TO_DATE(CreatedDateString, '%c/%e/%y'))
      WHERE CreatedDateString IS NOT NULL AND CreatedDateString != ''
    

    Then when you're confident everything got converted correctly:

    ALTER TABLE Estimates DROP COLUMN CreatedDateString
    

    The advantage to proper DATE fields is they're in a consistent format and when you add an INDEX on them data retrieval is very fast, even on ranges, like:

    SELECT * FROM Estimates WHERE CreatedDate BETWEEN '2016-01-01' AND '2016-06-30'
    

提交回复
热议问题