postgreGenerate SQL for datetime in loop



这里我想在循环中打印日期。

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'
);

最新更新