使用范围的不同随机日期时间更新每一行
update every row with a different random datetime of a range
这里问的问题是
使用相同的日期时间进行更新。
我需要用范围内的不同随机日期时间更新每一行。
有:
strftime('%s', enddate) - strftime('%s', startdate)
您可以获得 2 个日期时间之间的秒数差异。
有:
abs(random() % (strftime('%s', enddate) - strftime('%s', startdate) + 1))
您可以获得一个大于或等于 0
的随机整数,该整数小于或等于两个日期时间之间的秒数之差。
您可以做的是将这个随机秒数添加到范围的开始日期,以在该范围内创建一个随机日期时间:
update tablename
set datecol = datetime(
startdate,
abs(random() % (strftime('%s', enddate) - strftime('%s', startdate) + 1)) || ' second'
)
datecol
是 table
中的日期列
startdate
和 enddate
是您的范围的边界。
这里问的问题是
使用相同的日期时间进行更新。
我需要用范围内的不同随机日期时间更新每一行。
有:
strftime('%s', enddate) - strftime('%s', startdate)
您可以获得 2 个日期时间之间的秒数差异。
有:
abs(random() % (strftime('%s', enddate) - strftime('%s', startdate) + 1))
您可以获得一个大于或等于 0
的随机整数,该整数小于或等于两个日期时间之间的秒数之差。
您可以做的是将这个随机秒数添加到范围的开始日期,以在该范围内创建一个随机日期时间:
update tablename
set datecol = datetime(
startdate,
abs(random() % (strftime('%s', enddate) - strftime('%s', startdate) + 1)) || ' second'
)
datecol
是 table
中的日期列
startdate
和 enddate
是您的范围的边界。