MySQL:更新JIRA里issue的创建和更新时间

平哥为了清理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;

已经没有这样的记录了。

版权声明:本文为nova_pegasus原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。