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_TIMESTAMPDATE_ADDXXXX_ecms_news_check可以点击查看详情,了解以上SQL语句的意思。