PostgreSQL使用generate_series插入数据时随机日期生成报错如何解决
问题原因
你的SQL报错是因为字段列表中多余嵌套了select关键字,在INSERT ... SELECT的字段定义段不需要为单个字段再次声明select。
正确写法
完整可执行SQL
INSERT into tasks SELECT generate_series(1,3) AS id, md5(random()::text) AS business_name, NOW() + (random() * (NOW()+'90 days' - NOW())) + '30 days' AS created_at, md5(random()::text) AS meta_title, md5(random()::text) AS status, md5(random()::text) AS title, md5(random()::text) AS type;
随机日期逻辑说明
你原来的随机日期规则是生成介于当前时间+30天 到 当前时间+120天之间的随机时间,这个逻辑本身没有问题,仅需要删除字段前多余的select即可正常运行:
NOW()+'90 days' - NOW()固定得到90天的时间间隔random() * 90天间隔得到0-90天范围内的随机时间间隔- 最后加30天,就把整体随机区间偏移到30-120天范围内
如果需要调整随机日期的范围,只要修改对应的天数参数即可:
- 要调整最小偏移天数:修改末尾加的
'30 days'数值 - 要调整随机区间的总长度:修改
'90 days'的数值
内容的提问来源于stack exchange,提问作者Peter Penzov
相关产品推荐
相关产品推荐

