在Oracle中,要获得日期中的年份,例如把sysdate中的年份取出来,并不是一件难事。常用的方法是:Select to_number(to_char(sysdate,'yyyy')) from dual,而实际上,oracle本身有更好的方法,那就是使用Extract函数,使用方法是:Select Extract(year from sysdate) from dual,这种方法省掉了类型转换,看上去更加简洁。相应的,要取得月份或日,可以用select extract (month from sysdate) from dual和select extract (day from sysdate) from dual。 此方法获得的结果,是数值型的,你可以设置一个方法测试一下。
成都创新互联公司自2013年起,先为黄陂等服务建站,黄陂等地企业,进行企业商务咨询服务。为黄陂企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
可以使用下面的代码:
select floor(A/12) as “年”,mod(A,12) as "月" from 表
25整除12得到2年
求余数得到1月
oracle中的date类型字段,截取年份可用to_char函数。
工具:oracle 10g
工具:oracle 10g
步骤:
1、如emp表中有hiredate字段为date类型的数据。
2、截取其中的年份部分,用如下语句:
1
select empno,ename,job,mgr,to_char(hiredate,'yyyy'),sal,comm,deptno from emp;
3、运行后结果,可以看出年份已将截取出来了:
1、创建测试表,create table test_date(v_date date);
2、插入测试数据,
insert into test_date
select sysdate - level * 10 from dual connect by level 100
3、查询表中所有记录,select * from test_date,可以看到时间格式为年月日时分秒,
4、编写sql,将时间截取到年月,
select t.*,
to_char(v_date, 'yyyymm') v_date_mon1,
trunc(v_date, 'mm') v_date_mon2
from TEST_DATE t