2

这里问的问题是

使用两个日期之间的随机日期时间更新每一行

用相同的日期时间更新。

我需要的是在一个范围内用不同的随机日期时间更新每一行。

4

1 回答 1

1

和:

strftime('%s', enddate) - strftime('%s', startdate)

您可以获得 2 个日期时间之间的秒数差异。
和:

abs(random() % (strftime('%s', enddate) - strftime('%s', startdate) + 1))

您可以获得一个随机整数,大于或等于0,即小于或等于 2 个日期时间之间的差异(以秒为单位)。
您可以做的是将此随机秒数添加到范围的开始日期,以在该范围内创建随机日期时间:

update tablename 
set datecol = datetime(
  startdate, 
  abs(random() % (strftime('%s', enddate) - strftime('%s', startdate) + 1)) || ' second'
)

datecol是表中的日期列,
startdateenddate范围的边界。

于 2020-06-16T10:04:43.703 回答