我有很多日期,其中年份是0015而不是2015年或0016而不是2016年等等......
我可能会在ruby中编写一个脚本来处理它,但是有很多条目,我认为脚本需要很长时间。
我有什么方法可以在SQL中执行此操作吗?
如果我只能逐年完成,我愿意17次运行该脚本来完成所有的2000年。
感谢您的帮助。
答案 0 :(得分:1)
假设这些是日期或时间戳字段,您应该能够将其作为简单的UPDATE
查询。
首先,我们可以找到所有受影响的日期:
SELECT * FROM my_table WHERE my_column < '0020-01-01';
假设这会返回正确的行,我们可以在每个受影响的日期添加2000年:
SELECT my_column as old_value, my_column + interval '2000 years'
FROM my_table WHERE my_column < '0020-01-01';
假设这一切看起来都正确,请将其应用于表格:
UPDATE my_table
SET my_column = my_column + interval '2000 years'
WHERE my_column < '0020-01-01';