如何构造一个查询,在当前日期(sysdate
(之后返回一些'x'个日期?
例如,如果今天是18-May-2018
而我要求x=2
,那么我应该得到
19-五月-2018
20-五月-2018
作为输出。
您可以使用generate_series
.
SELECT generate_series(current_date + 1,
current_date + 2,
interval '1' day)
文档
在 plsql 中,您可以将x
设置为变量,然后在查询中使用它。
knayak=# set x 5
knayak=# SELECT generate_series(current_date + 1,
current_date + :x,
interval '1' day);
generate_series
---------------------------
2018-05-19 00:00:00+05:30
2018-05-20 00:00:00+05:30
2018-05-21 00:00:00+05:30
2018-05-22 00:00:00+05:30
2018-05-23 00:00:00+05:30
您可以使用TO_CHAR
将日期格式化为所需的格式
SELECT to_char(dt,'DD-MON-YYYY') as dates
FROM generate_series(current_date + 1,
current_date + 2,
interval '1' day) as dt
dates
-------------
19-MAY-2018
20-MAY-2018
如果你使用的是PostgreSQL,你可以使用这个:
SELECT current_date + s.a AS dates
FROM generate_series(1, 2, 1) AS s(a);
并将 2 更改为您的x
值
既然你已经写了sysdate,
我相信你正在寻找一个预言机数据库,如果你正在寻找一个预言机数据库,请使用以下语句
select trunc(sysdate)+level ldate from dual
connect by level <&x;
上面的查询会要求 x,当你给出 x 的值为 3 时,它将从 sysdate 生成两天