mysql:如何插入一个范围内的时间戳
2016-11-21 15:30
399 查看
问题:插入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;
方案:
定义两个变量,并用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;
相关文章推荐
- C++获取系统时间如何插入到MySQL里面的datetime型属性中
- mysql如何在一个表中插入数据的同时,更新另一个表的数据?
- 如何使用SQL向mysql中插入一个特定UNICODE码值的字符
- Mysql中的date与datetime,以及如何向Mysql中插入“日期+时间”数据
- C++获取系统时间如何插入到MySQL里面的datetime型属性中
- Mysql的时间列自动插入当前日期时间
- mysql 插入多条数据如何使用INSERT插入多条记录
- 11如何精确计算出一个算法的CPU运行时间?
- mysql中插入固定格式的时间 yyyy-MM-dd HH:mm:ss
- 如何把图片插入Excel的一个单元格中
- 一个计算周次和本周时间范围的代码(c#)
- 如何访问一个文件的创建、修改时间、文件属性
- 如何精确计算出一个算法的CPU运行时间
- 在php MYSQL中插入当前时间
- MySQL中如何插入blob类型数据
- [MySQL FAQ]系列 -- 如何为一个字段指定字符集
- 如何在VC6.0中得到一个程序的运行时间,也就是这个程序耗费的时钟周期数// C和C++的时间编程
- 一个计算周次和本周时间范围的代码(c#)
- sql server 里如何取得服务器的日期和时间,并以自定义的格式插入数据库?
- 利用MYSQL的C API编程,如何确定一个数据库/表是否存在???