问题描述
我试图在postgres上生成一个随机日期作为结束日期,并在一周前生成一个第二个日期作为开始日期。我尝试了以下请求,但不起作用。 :/ 预先感谢您的帮助。
SELECT date((current_date - trunc(random() * 365) * '1 day'::interval)) as enddate,date(enddate - '7 day'::interval) as startdate;
解决方法
您不能在与定义的范围相同的范围内重用计算列。由于计算不是确定性的,因此此处不重复表达式。一种方法使用子查询:
SELECT enddate,enddate - '7 day'::interval startdate
FROM (
SELECT date(current_date - trunc(random() * 365) * '1 day'::interval) as enddate
) t