Sql批量修改帝国cms未审核文章的发布时间(需unix时间,否则会变为1970-01-01)
内容纲要
网上找的教程:
在迁移网站时,有时我们需要将帝国cms文章发表时间批量修改为当前时间,在帝国cms后台→系统设置→备份与恢复数据→执行sql语句:
update phome_ecms_news set newstime = '2014-07-03';
(ps:phome这个是默认的数据库表前缀,如果创建数据库时有设置成其他的可以自行修改)
这样执行sql语句后刷新所有文章,你会发现时间变为了1970-01-01,这是因为newstime这个类型是int(10),必须是unix时间戳,所以我们必须先把当前时间转换为unix时间,比如2014-07-04 15:52:43转换为unix时间为1404460363,所以我们需要重新修改sql语句
update phome_ecms_news set newstime = '1404460363';
根据需要进行了改进,对未审核的文章批量修改发布时间,而且需要发布时间实现递增,比如每1个小时发一篇文章:
SET @rownum =0;
UPDATE `XXXX_ecms_news_check` set `newstime` = UNIX_TIMESTAMP(DATE_ADD(FROM_UNIXTIME(`newstime`,'%Y-%m-%d %H:%i:%s'),INTERVAL+(@rownum := @rownum +1) hour)) WHERE classid in (1,2,3,4);
关于UNIX_TIMESTAMP、DATE_ADD、XXXX_ecms_news_check可以点击查看详情,了解以上SQL语句的意思。