SQLite - 选择范围内的随机日期时间

Kam*_*mil 2 sql sqlite random

我不熟悉SQLite.有人可以帮助我生成随机日期时间值吗?

我试着从这开始(它用于MS-SQL):

select dateadd(
               millisecond, 
               cast(86400000 * RAND() as int), 
               convert(time, '00:00')
               );
Run Code Online (Sandbox Code Playgroud)

但是sqlite返回错误:invalid column millisecond.

我需要一些东西,它允许生成具有指定最小和最大日期的随机日期时间,但是现在我认为只需要知道如何将数字转换为日期.

我使用SQLite版本3.7.15.1.

CL.*_*CL. 5

random()函数生成随机64位整数.带参数
strftime()函数'%s'将日期/时间字符串转换为自1970年以来的秒数.带修饰符
datetime()函数'unixepoch'将秒数转换为日期/时间字符串.

要将随机整数转换为所需的秒数范围,请使用模数运算符(%),其中最小/最大日期之间的差值为范围,并将其添加到开始日期.例如,以下内容将在2000年1月生成一个随机时间戳:

SELECT datetime(strftime('%s', '2000-01-01 00:00:00') +
                abs(random() % (strftime('%s', '2000-01-31 23:59:59') -
                                strftime('%s', '2000-01-01 00:00:00'))
                   ),
                'unixepoch');
Run Code Online (Sandbox Code Playgroud)