按特定的delta值移动MySQL数据库中的所有日期

时间:2013-10-31 03:55:06

标签: mysql sql datetime

在MySQL中是否有办法按计算的delta值移动数据库中的所有日期/日期时间列?

我想从静态表和列(表和列始终相同)中取出最大日期,然后从curdate()值中减去该值,以获得现在后面的天数最大的是。然后我希望按照该数字移动数据库中的所有日期/日期时间值,有效地将数据库中的所有记录都带到当前时间。

我知道我可以使用information_schema.columns属性来提取日期/日期时间的所有列,但我不确定如何将其构建为一个工作“且理智”的查询来进行更新。

我想的是:

SELECT concat('UPDATE ', table_name, ' set ', column_name, ' = date_add(', column_name, ', INTERVAL datediff(curdate(), max(given_table.given_column)) day);')
from information_schema.columns
where data_type in ('date', 'datetime') and table_schema = 'mydatabase';`

但显然有很多问题,所以我知道我不能用它。

有没有办法计算X数据库列和现在之间的增量,然后按该值移动数据库中的所有日期/日期时间列?

0 个答案:

没有答案