【问题标题】:Extract only the current year in oracle在 oracle 中仅提取当前年份
【发布时间】:2018-04-03 16:32:19
【问题描述】:

我需要从 oracle 数据库中获取当前年份。例如,我需要将 2017 作为当前年份的答案作为数字类型返回。我尝试使用以下方式。

select to_Number(sysdate, 'YYYY') from student s

但它不起作用。那么最简单的方法是什么?

【问题讨论】:

标签: oracle


【解决方案1】:

获取当前年份的开始日期: trunc (sysdate, 'yyyy')

select trunc (sysdate, 'yyyy'),SYSDATE from dual;

获取当前月份的开始日期:

select trunc (sysdate, 'mm'),SYSDATE from dual; 

选择月/年的记录:

created_date between trunc (sysdate, 'mm') and sysdate;

created_date between trunc (sysdate, 'yyyy') and sysdate;

【讨论】:

    【解决方案2】:

    您需要to_char 而不是 to_number

    select to_char(sysdate, 'YYYY') from student;
    

    这给了一个字符串。您可以在其上进一步应用to_number 以转换为数字。

    select to_number(to_char(sysdate, 'YYYY')) from student;
    

    但是有更好的方法使用extract:

    select extract(year from sysdate) from student;
    

    【讨论】:

      【解决方案3】:

      使用extract

      select extract(year from sysdate)
      from dual;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-10
        • 2011-08-25
        • 2014-07-20
        • 1970-01-01
        • 2022-10-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多