2017-04-10 70 views
0

我有很多地方的日期年份是0015,而不是2015年或0016,而不是2016年,等等,等等...的更換00與20年的日期字段中的Postgres/Rails的

我大概可以寫一個紅寶石腳本爲我照顧它,但是有很多條目,我認爲這個腳本會花太長的時間。

有什麼辦法可以在SQL中做到這一點?

如果我只能年復一年,我願意17次運行腳本來完成2000年的所有工作。

感謝您的任何幫助。

+1

什麼是列類型? –

回答

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'; 
+0

Duh .. jeez不敢相信我沒有想到這一點。感謝IMSoP偉大的答案,正是我所期待的。 – bryanfeller

相關問題