更新DB MySQL的所有日期字段

时间:2015-12-09 07:38:58

标签: mysql

我有一个包含over hundret表的mysql数据库,每个数据库都包含很多列。

我的服务器有些日子的日期错了,现在很多数据都有错误的日期。

是否可以显示整个数据库的所有日期字段以进行更新。

但是也有一些像birthdate这样的字段不应该更新。

是否有任何可能性,或者我只能手动完成吗?

1 个答案:

答案 0 :(得分:2)

正如@frlan建议的那样,你应该考虑一下这个更新的算法。

要获取“datetime”类型的所有表和列,您可以使用:

SELECT 
    TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME 
FROM 
    INFORMATION_SCHEMA.COLUMNS 
WHERE 
    DATA_TYPE='datetime'

一种可能性是运行此查询,并在代码中,foreach这样的列,运行更新查询,例如: (假设scheme,table,column是来自先前查询的变量)

UPDATE scheme.table 
SET column= ADDTIME(column, '36:00:00')
WHERE (column BETWEEN '2015-09-29 10:15:55' AND '2015-01-30 14:15:55')