使用SQL时,是否可以在提供范围的列中插入随机的datetime值?
例如,给定范围2010-04-30 14:53:27为2012-04-30 14:53:27
2010-04-30 14:53:27
2012-04-30 14:53:27
我对范围部分感到困惑。正如我将要做的
INSERT INTO `sometable` VALUES (RND (DATETIME()))
这是一个应该有所帮助的示例:
INSERT INTO `sometable` VALUES( FROM_UNIXTIME( UNIX_TIMESTAMP('2010-04-30 14:53:27') + FLOOR(0 + (RAND() * 63072000)) ) )
它使用日期2010-04-30 14:53:27作为基础,将其转换为Unix时间戳,并向基础日期添加0到+2年的随机秒数,并将其转换回DATETIME。
它应该很接近,但在更长的时间内会leap年,其他调整会使其失效。