在 Pervasive SQL 中向 varchar 字段添加天数
Adding days to varchar field in Pervasive SQL
我正在尝试将生产数据复制到测试环境中。在其中一个 table
我有一个定义为 VARCHAR(10) 的出生日期字段。由于这是一个敏感列,我们需要随机化此日期字段中的值,以免原始 DOB 暴露给开发人员。你能指导我如何随机化日期或在普遍存在的日期字段中添加天数 sql。
如果您使用的是较新版本的 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;
它甚至可以变成一个更新语句和 运行 针对您的 table:
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)
我正在尝试将生产数据复制到测试环境中。在其中一个 table 我有一个定义为 VARCHAR(10) 的出生日期字段。由于这是一个敏感列,我们需要随机化此日期字段中的值,以免原始 DOB 暴露给开发人员。你能指导我如何随机化日期或在普遍存在的日期字段中添加天数 sql。
如果您使用的是较新版本的 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;
它甚至可以变成一个更新语句和 运行 针对您的 table:
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)