如何构建一个在当前日期(val
)之后返回一些'x'个日期的查询?
例如,如果今天是sysdate
并且我要求18-May-2018
,那么我应该
19月-2018
可能20 - 2018
作为输出。
答案 0 :(得分:1)
您可以使用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
答案 1 :(得分:1)
如果你正在使用PostgreSQL,你可以使用它:
SELECT current_date + s.a AS dates
FROM generate_series(1, 2, 1) AS s(a);
并将2更改为x
答案 2 :(得分:1)
因为你已经写了sysdate,
我相信你正在寻找一个 oracle 数据库,如果你正在寻找一个oracle数据库,请使用以下语句
select trunc(sysdate)+level ldate from dual
connect by level <&x;
上面的查询会询问x,当你给x的值为3时,它会从sysdate生成两天