【发布时间】:2018-10-13 07:31:48
【问题描述】:
【问题讨论】:
-
extract(year from datecol) -
请更具体一点..您已经有一个表格,您想从中选择数据吗?还是您需要创建一个仅将日期存储为年份的表
【问题讨论】:
extract(year from datecol)
以下是从日期和时间字段或给定日期值中提取日期的三个不同示例。
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;
【讨论】:
在您的第二篇文章中,您必须创建如下表,才能直接接受数字值。
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)”,这样将来甚至会更好地管理。
【讨论】:
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;
【讨论】: