обновить каждую строку с различным случайным датой и временем диапазона - PullRequest
2 голосов
/ 16 июня 2020

Здесь задается вопрос:

Обновить каждую строку со случайным datetime между двумя датами

для обновления с тем же datetime.

What Мне нужно обновить каждую строку с помощью другого случайного даты и времени в диапазоне.

1 Ответ

1 голос
/ 16 июня 2020

С помощью:

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

вы можете получить разницу в секундах между двумя датами. С помощью:

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

вы можете получить случайное целое число, большее или равное 0, которое меньше или равно разнице между двумя датами в секундах. Что вы можете сделать, так это добавить это случайное количество секунд к начальной дате вашего диапазона, чтобы создать случайное datetime в этом диапазоне:

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

datecol - это столбец даты в вашей таблице startdate и enddate - границы вашего диапазона.

...