函数:
DELIMITER $$
CREATE
FUNCTION `RandomDateTime`(sd DATETIME,ed DATETIME)
RETURNS DATETIME
BEGIN
RETURN DATE_ADD(sd,INTERVAL FLOOR(1+RAND()*((ABS(UNIX_TIMESTAMP(ed)-UNIX_TIMESTAMP(sd)))-1)) SECOND);
END$$
DELIMITER ;
好看一点的
DECLARE sub INT DEFAULT 0;
DECLARE ret DATETIME;
SET sub = ABS(UNIX_TIMESTAMP(ed)-UNIX_TIMESTAMP(sd));
SET ret = DATE_ADD(sd,INTERVAL FLOOR(1+RAND()*(sub-1)) SECOND);
测试:
SELECT RandomDateTime(DATE_FORMAT('2010-12-1 10:10:10','%Y-%m-%d %H:%i:%s'),DATE_FORMAT('2010-12-1 11:10:13','%Y-%m-%d %H:%i:%s')) AS t;
本文介绍了一个 MySQL 函数 `RandomDateTime`,用于在指定的时间范围内生成随机日期时间。该函数使用 `RAND()` 生成随机数,并通过 `DATE_ADD()` 和 `UNIX_TIMESTAMP()` 实现精确到秒的随机日期生成。
5630

被折叠的 条评论
为什么被折叠?



