这里我想在循环中打印日期。
DO $$
DECLARE counter INTEGER := 0 ;
DECLARE interval_days TIMESTAMP;
BEGIN
WHILE counter <= 5 LOOP
counter := counter + 1 ;
interval_days := NOW() - INTERVAL '2 DAY';
RAISE NOTICE '%', interval_days;
END LOOP ;
END; $$
在上面的代码中,我想打印这样的东西。
2020-11-16 12:11:43.741087
2020年11月15日12:11:43.742087
2020年1月14日12:11:4.3741087
不同日期间隔的日期。2天不是固定的。
您必须稍微修改您的代码:
DO $$
DECLARE
counter INTEGER := 0;
interval_days TIMESTAMP := current_timestamp;
BEGIN
WHILE counter <= 5 LOOP
counter := counter + 1;
interval_days := interval_days - INTERVAL '1 DAY';
RAISE NOTICE '%', interval_days;
END LOOP;
END;$$;
但也可以
SELECT *
FROM generate_series(
current_timestamp - INTERVAL '1 DAY',
current_timestamp - INTERVAL '6 DAY',
INTERVAL '-1 DAY'
);