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 -
PLUG-discuss@lists.plug.phoenix.az.us
To subscribe, unsubscribe, or to change your mail settings:
http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss