mysql:如何插入一个范围内的时间戳

问题:插入2016年1月到11月之间的随机时间戳。


方案:

定义两个变量,并用CONCAT实现连接。


set @dates= CONCAT(FLOOR(2016 + (RAND() * 1)),'-',LPAD(FLOOR(1 + (RAND() * 11)),2,0),'-',LPAD(FLOOR(3 + (RAND() * 8)),2,0));

set @time= CONCAT(LPAD(FLOOR(0 + (RAND() * 23)),2,0),':',LPAD(FLOOR(0 + (RAND() * 59)),2,0),':',LPAD(FLOOR(0 + (RAND() * 59)),2,0));

CONCAT(@dates,' ',@time)


实例sql“”



/*门诊设备数据*/
drop PROCEDURE if EXISTS out_patient_device;
create PROCEDURE out_patient_device()
begin
DECLARE num int DEFAULT 0; 
DECLARE patientid int DEFAULT 2000;
DECLARE devicesn int DEFAULT 10100;
DECLARE IDS INT DEFAULT 1001;


truncate table patient_device_relation;


while num<10000 do

/*rand()取是是一个0和1之间的随机小数,FLOOR(X)返回不大于X的最大整数,floor(1.8)等于1*/
/*FLOOR(2016 + (RAND() * 1)取2016年,floor是取整函数*/
/*LPAD(FLOOR(8 + (RAND() * 3)),2,0)取9-11月之间的月份,并且lpad在月份之间填充0,如果大于两位,则不填充。如9月份则是09,10月是10*/
/*LPAD(FLOOR(1+(RAND() * 30)),2,0)取1-30号*/
set @dates= CONCAT(FLOOR(2016 + (RAND() * 1)),'-',LPAD(FLOOR(9 + (RAND() * 3)),2,0),'-',LPAD(FLOOR(1 + (RAND() * 29)),2,0));
set @time= CONCAT(LPAD(FLOOR(0 + (RAND() * 23)),2,0),':',LPAD(FLOOR(0 + (RAND() * 59)),2,0),':',LPAD(FLOOR(0 + (RAND() * 59)),2,0));
insert into PATIENT_DEVICE_RELATION (ID, PATIENT_ID, DEVICE_SN, DEVICE_TYPE, BIND_TIME, UNWRAP_TIME)
values (IDS, patientid, devicesn, '亲智',CONCAT(@dates,' ',@time), null);
set num=num+1;
set patientid=patientid+1;
SET IDS=IDS+1;
SET devicesn=devicesn+1;
end while;
end;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值