MYSQL随机生成两个日期之间的时间

函数

DELIMITER $$

USE `数据库名称`$$

DROP FUNCTION IF EXISTS `create_time`$$

CREATE DEFINER=`root`@`%` FUNCTION `create_time`(start_time VARCHAR(10),end_time VARCHAR(10) ) RETURNS VARCHAR(36) CHARSET utf8
BEGIN
  /*两个日期之差*/
   DECLARE num INT(4) DEFAULT ABS(DATEDIFF(start_time, end_time));
   DECLARE rand_date DATE DEFAULT DATE_ADD(start_time,INTERVAL FLOOR(RAND()*num) DAY);
    RETURN CONCAT(
rand_date,' ',
/*随机时*/
 LPAD(FLOOR(RAND()*24),2, 0),':',
/*随机分*/
 LPAD(FLOOR(RAND()*60),2, 0),':',
/*随机秒*/
 LPAD(FLOOR(RAND()*60),2, 0)
);
    END$$

DELIMITER ;

执行函数

SELECT create_time('2020-01-20','2020-01-09') rand_time

结果

你可能感兴趣的:(MySQL)