Re: Mysql updating dates in a table

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Austin William Wright
Date:  
To: Main PLUG discussion list
Subject: Re: Mysql updating dates in a table
Craig White wrote:
> I need to update almost all (but not quite all) records in a data table
> because the dates were imported like '08/04/09' instead of '2009-08-04'
>
> I am looking at the mysql reference manual but it doesn't appear that it
> would be easy to script a line by line 'update' from a csv file.
>
> Now I still have the csv files (and a copy with the dates fixed) and I
> suppose I could 'find', 'delete' and then 'import' again but there are
> relational records so mysql would probably prevent me from doing that
> unless I suspend all relational checks when I delete those records prior
> to reimporting them with the fixed dates.
>
> What's the best way to accomplish this?
>
> Craig

If there are no records from before 2000, and they are MM/DD/YY, back up
the table first, then try:

UPDATE `tablename` SET
`columnname`=CONCAT("20",SUBSTRING_INDEX(SUBSTRING_INDEX(`columnname`,"/",-2),"/",-1),"-",SUBSTRING_INDEX(`columnname`,"/",1),"-",SUBSTRING_INDEX(SUBSTRING_INDEX(`columnname`,"/",-2),"/",1))

then

|ALTER TABLE |`tablename`| CHANGE |`columnname`| |`columnname`| DATE NOT
NULL |

Replace all instances of tablename and columnname with the targets, and
change DATE NOT NULL as necessary. That should work.

Austin Wright.
---------------------------------------------------
PLUG-discuss mailing list -
To subscribe, unsubscribe, or to change your mail settings:
http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss