0

我正在尝试将生产数据复制到测试环境中。在其中一个表中,我有一个定义为 VARCHAR(10) 的出生日期字段。由于这是一个敏感列,我们需要随机化此日期字段中的值,以便原始 DOB 不会暴露给开发人员。您能否指导我如何在普遍的 sql 中随机化日期或在此日期字段中添加天数。

4

1 回答 1

0

如果您使用的是较新版本的 PSQL(我在 v12 上尝试过),您可能会使用类似以下算法的东西来生成新日期:

create table dtTest (f1 varchar(10));
insert into dtTest (f1) values ('2016-02-28');
select F1, left(convert(dateadd(day, truncate(rand() * 10, 0), dateadd(month, truncate(rand() * 10, 0), convert(f1, SQL_DATE))), SQL_VARCHAR), 10) from dtTest;

它甚至可以变成更新语句并针对您的表运行:

update <Table> set <DateField> = left(convert(dateadd(day, truncate(rand() * 10, 0), dateadd(month, truncate(rand() * 10, 0), convert(<DateField>, SQL_DATE))), SQL_VARCHAR), 10) 
于 2016-03-03T13:17:19.453 回答