10
A
回答
13
UPDATE YourTable
SET YourDateColumn = SUBDATE(YourDateColumn, INTERVAL 9 YEAR);
5
使用ADDDATE(old_date, INTERVAL -9 YEAR)
2
UPDATE YourTable
SET YourDateColumn = ADDDATE(YourDateColumn, INTERVAL 1 YEAR)
WHERE YourDateColumn >= '2010-01-01'
AND YourDateColumn <= '2010-12-31';
如果你的桌子下不会对日期字段的索引,你可以不用它:
UPDATE YourTable
SET YourDateColumn = ADDDATE(YourDateColumn, INTERVAL 1 YEAR)
WHERE YEAR(YourDateColumn) = 2010;
要预计到2020解决您的日期问题去2021跑这个:
UPDATE YourTable
SET YourDateColumn = ADDDATE(YourDateColumn, INTERVAL -1 YEAR)
WHERE YEAR(YourDateColumn) = 2021;
顺便说一句,因为我复制了Joe Stefanelli的原始代码,他+1!
1
我想补充(更多游客到问题),您还可以在“更新”肯定比声明与SUBDATE
功能更快,我认为是合理的速度更快,而以把它aprox的。 1小时影响2.3万亿行SUBDATE
使它成为一半的时间。
UPDATE Table SET DateTimeField = SUBDATE(DateTimeField, INTERVAL -x YEAR);
其中x是您想添加为新年值的负数。 老实说,我忽略了为什么发生这种情况,但它的工作原理。
相关问题
- 1. 如何CONVER日期像2011年3月1日至只有2011年3月
- 2. 识别一周中相同日期的年份(例如1994年,2005年,2011年)
- 3. 添加一年至日期
- 4. SQL日期范围年初至上一个月的上一年和上一年
- 5. 迁移SharePoint内容数据库二○一○年至2013年
- 6. 在mysql日期中更改年份
- 7. 演员字符串日期和改变0001年至1900年
- 8. 更新日期+一年MySQL的
- 9. 转换日期日(2011年5月12日至12日)
- 10. 需要有我的SQL Server Express二○○五年至2008年
- 11. 每年在特定日期将显示年份更改为下一年
- 12. NHibernate的同时,从SQL Server改变方言二零零八年至2000年
- 13. 日期时间的TryParse - 映射 '99' 至2099年,1999年不
- 14. 一年中,找到二月
- 15. 需要更改日期甲至今(年月日)格式
- 16. 二年级数组
- 17. 二年级移动
- 18. 2011年,日期在插件和DST
- 19. 添加30天至日期(月/日/年)
- 20. Dateformatter更改我的日期的年份
- 21. 不同日期mysql php年
- 22. 日期格式形式年01月30至2011-01-30
- 23. 安卓:在2011年中期
- 24. 在SQL中更改日期的年份
- 25. 如何转换日期4/7/2011 12:00:00 AM至2011年4月7日?
- 26. 如何添加日期与二月闰年的日期或不
- 27. javascript日期(年)
- 28. 自2011年CRM
- 29. 转换的一年日期
- 30. 如何与另一日期(月/年)比较日期(月/年)
有问题的列的数据类型是什么? – 2011-12-14 20:12:22
列的数据类型为日期 – Chinmay 2011-12-14 20:15:05
[This](http://stackoverflow.com/questions/14491906/changing-year-in-mysql-date)一个更简单的解决方案 – 2015-11-18 10:45:25