【问题标题】:select query in oracle that will output the sysdate and sysdate+1 (YYYY-YYYY)在 oracle 中选择查询,将输出 sysdate 和 sysdate+1 (YYYY-YYYY)
【发布时间】:2018-03-20 10:17:41
【问题描述】:

如何在 oracle 上创建一个选择查询,将选择当前年份和当前年份 +1

样本表

Col1 2016-2017 2017-2018 2018-2019 2018-2019
select count(*) from tablename
where Col1 = sysdate||-||sysdate+1;

并且输出必须为 2,因为当年是 2018 年,当前年份增加 1 是 2019 年,即 2018-2019 年

如何为像这样工作的 select 创建一个正确且适当的查询

这是用于 oracle apex 5.1 中仪表板的源查询

【问题讨论】:

  • 不清楚你在问什么。您的表格包含显示的四行,您要选择第四行吗?但是你需要这张桌子做什么?当前年份到下一个年份是“2018-2019”,有或没有那个表。

标签: oracle oracle-apex-5.1


【解决方案1】:

首先你需要从sysdate获取年份:

SELECT EXTRACT(year FROM sysdate)
from dual
;

然后使用您自己的串联会导致您正在寻找的内容:

SELECT
EXTRACT(year FROM sysdate) as currentyear,
(EXTRACT(year FROM sysdate) + 1) as nextyear,
EXTRACT(year FROM sysdate) || ' - ' || (EXTRACT(year FROM sysdate) + 1) as concat
from dual
;

【讨论】:

    【解决方案2】:

    使用TO_CHARADD_MONTHS

    SELECT count(*) FROM tablename
    WHERE Col1=TO_CHAR(SYSDATE,'YYYY')||'-'||TO_CHAR(ADD_MONTHS(SYSDATE,12),'YYYY')
    

    【讨论】:

      【解决方案3】:

      使用TO_CHAR

      SELECT COUNT (*)
        FROM tablename
       WHERE Col1 =
                TO_CHAR (SYSDATE, 'YYYY') || '-' || (TO_CHAR (SYSDATE, 'YYYY') + 1);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-21
        • 2023-02-06
        • 1970-01-01
        • 1970-01-01
        • 2017-03-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-16
        相关资源
        最近更新 更多