平哥为了清理JIRA服务器里的灰尘,做了关机和重启的操作。但是服务器的CMOS电池没电了,所以重启以后时间变成了2005年8月的一个时期。这一问题的影响就是最近几天新建和更新的bug的日期都是不对的。今天对这些有问题的bug进行了日期的更新:
1. 查找受到影响日期有问题的纪录:
SELECT ID,pkey,PROJECT,CREATED, UPDATED FROM jiraissue
WHERE CREATED < DATE('2006-01-01') OR UPDATED < DATE('2006-01-01')
ORDER BY ID;
2. 计算正确日期和问题日期间的差距:结果是2261天,不过有13个半小时的差距,最后的差距结果应该是2260天13个半小时
SELECT DATEDIFF('2005-08-26 19:30','2011-11-04 9:00') AS diff;
3. 拼写出更新的语句,在一条记录上做测试:
UPDATE jiraissue
set CREATED = DATE_ADD(CREATED,INTERVAL '2260 13:30:00' DAY_SECOND)
WHERE ID =13616;
SELECT ID,pkey,PROJECT,CREATED, UPDATED FROM jiraissue where ID=13616;
检查没有问题
4. 针对所有有问题的记录运行更新语句
UPDATE jiraissue
set CREATED = DATE_ADD(CREATED,INTERVAL '2260 13:30:00' DAY_SECOND)
WHERE PROJECT IN (10131, 10100)
AND CREATED <DATE('2006-01-01');
UPDATE jiraissue
set UPDATED= DATE_ADD(UPDATED,INTERVAL '2260 13:30:00' DAY_SECOND)
WHERE PROJECT IN (10131, 10100)
AND UPDATED <DATE('2006-01-01');
5.检查结果
SELECT ID,pkey,PROJECT,CREATED, UPDATED FROM jiraissue
WHERE CREATED < DATE('2006-01-01') OR UPDATED < DATE('2006-01-01')
ORDER BY ID;
已经没有这样的记录了。