【问题标题】:how to write query only displaying year in oracle sql如何在oracle sql中编写仅显示年份的查询
【发布时间】:2018-10-13 07:31:48
【问题描述】:

我需要这样写一个查询:

【问题讨论】:

  • extract(year from datecol)
  • 请更具体一点..您已经有一个表格,您想从中选择数据吗?还是您需要创建一个仅将日期存储为年份的表

标签: sql oracle11g


【解决方案1】:

以下是从日期和时间字段或给定日期值中提取日期的三个不同示例。

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

select extract(year from sysdate) from dual;

select extract(year from to_date('15-JAN-2018', 'DD-MON-YYYY')) from dual;

【讨论】:

    【解决方案2】:

    在您的第二篇文章中,您必须创建如下表,才能直接接受数字值。

    create table olympic_sprts (OLYMPIC_YEAR number(4), SPORT varchar2(25), GENDER varchar2(10), EVENT varchar2(40), MEDAL varchar2(10), NOC varchar2(10), ATHLETE varchar2(25));
    

    或者,您可以使用以下示例在数字中插入年份,但数据库会自动将其日期和月份设为“01-May”,因为目前我们在 5 月份运行。

    insert into olympic_sprts (OLYMPIC_YEAR, SPORT, GENDER, EVENT, MEDAL, NOC, ATHLETE) values (to_date('2016','YYYY'), 'Archery', 'M','Mens Individual','Gold',' KOR', 'KU Bonchan');
    

    我建议使用第一个示例,将“OLYMPIC_YEAR”列的数据类型从时间戳更改为“NUMBER(4)”,这样将来甚至会更好地管理。

    【讨论】:

      【解决方案3】:
       create table olympic_sprts (OLYMPIC_YEAR char(4), SPORT varchar2(25),
       GENDER varchar2(10), EVENT varchar2(40), MEDAL varchar2(10), NOC
       varchar2(10), ATHLETE varchar2(25));
      
       insert into olympic_sprts (OLYMPIC_YEAR, SPORT, GENDER, EVENT, MEDAL,
       NOC, ATHLETE) values ('2016','Archery', 'M','Mens Individual','Gold','
       KOR', 'KU Bonchan');
      
       select to_char(OLYMPIC_YEAR,'YYYY'),SPORT, GENDER, EVENT, MEDAL, NOC,
       ATHLETE from olympic_sprts;
      

      【讨论】:

        猜你喜欢
        • 2020-09-13
        • 1970-01-01
        • 2019-12-03
        • 2018-08-10
        • 2020-06-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多