酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

我想得到最近30天内的日期, 比如这样的sql, 但太冗余了, 有没有简化的办法, oracle库里执行: select to_char(sysdate, 'yyyymmdd') from dual union select to_char(sysdate-1, 'yyyymmdd') from dual union select to_char(sysdate-2, 'yyyymmdd') from dual union select to_char(sysdate-3, 'yyyymmdd') from dual union select to_char(sysdate-5, 'yyyymmdd') from dual

在 Oracle 数据库中,可以使用 `CONNECT BY` 子句来生成最近 30 天的日期,而不需要列出每一天。以下是一个简化的 SQL 查询示例: ```sql SELECT TO_CHAR(SYSDATE - LEVEL + 1, 'yyyymmdd') AS date FROM dual CONNECT BY LEVEL <= 30; ``` 这里的 `LEVEL` 是一个伪列,表示当前行的层级(在 `CONNECT BY` 查询中使用),从 1 开始。通过 `SYSDATE - LEVEL + 1` 计算出从当前日期往前推的日期,`LEVEL <= 30` 指定了生成最近 30 天的日期。 你可以将以上 SQL 查询直接在 Oracle 数据库的 SQL 环境中执行,, [2024-08-14 20:11:26 | AI写代码神器 | 320点数解答]

相关提问