最近接到一个数据更新的需求,要求把之前的数据创建时间全部更新到某个时间段,而且要随机。
经过查阅资料,最终写了如下sql语句:
要求:将cetype='2'的新闻数据的创建时间全部更新成2016-05-01到2016-05-05的时间段之间的时间。
update [Tb_News_Latest] set createtime=DATEADD(second,ABS(CHECKSUM(NEWID()))%DATEDIFF(second,'2016-05-01','2016-05-05'),'2016-05-01') where cetype='2'
接下来说说每个函数都是干啥的:
DATEDIFF函数:计算两个时间点之间的时间差,到底是以秒为单位还是以年为单位,就是第一个参数决定的。
NEWID函数:产生一个随机数
CHECKSUM函数:校验数值
ABS函数:取绝对值
DATEADD函数:给一个时间加上一些时间,单位以第一个参数决定。
留下您的脚步
最近评论