使用sql制造数据带时间的数据

使用sql制造数据带时间的数据

现场或者测试需要用到大量数据,使用sql在数据库中插入数据。



问题描述

工作现场需要生成大量数据,有时间要求,数据不一致的要求。
例:给一天的数据样例,制造前一个月的数据要求具体的指标列里的数据是随机数。


使用环境

达梦数据库

具体SQL代码

sql代码

代码如下(示例):

DROP TABLE  IF EXISTS TEMPTB; #这一步是为了重复使用插入不同日期的数据的sql
CREATE TABLE TEMPTB AS SELECT * FROM TABLE1 WHERE STATISTIC_TIME='2023-11-20 00:00:00';  #创建一个中间表用于存放样例数据,通过添加过滤条件过滤自己需要的数据
SELECT * FROM TEMPTB; #查看样例数据是否存在
UPDATE TEMPTB SET STATISTIC_TIME =REPLACE(STATISTIC_TIME,'2023-11-20 00:00:00','2023-11-10 00:00:00'),
"MONTH"=REPLACE("MONTH",'11','11'),"DAY"=REPLACE("DAY",'20','10'),COL_1=(RAND()+(1))*10;
SELECT * FROM TEMPTB; #将需要替换值的列使用达梦替换函数替换,将需要使用随机值的列使用随机函数添加随机函数
INSERT INTO TABLE1 SELECT * FROM  TEMPTB; 将处理好的中间表中的数据插入原来的表中实现新增数据的目的。
COMMIT; #自动提交

修改已存在记录的数据

该sql可以修改已经存在的记录的数据,通过过滤条件对数据进行修改

UPDATE TABLE1 SET COL_1=(RAND()+(1))*9 WHERE "MONTH"=11 AND "DAY" =16;

提示

如果是第一次使用建议一步一步执行sql。确定数据没有问题后。
可以复制代码修改对应的日期。
多条sql一次执行。

总结

代码还有优化的空间,大家多指教。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值