select to_char(round((to_date('2012-03-05', 'yyyy-mm-dd') - to_date('2012-02-01', 'yyyy-mm-dd'))/30)) || '个月' || to_char((to_date('2012-03-05', 'yyyy-mm-dd') - to_date('2012-03-01', 'yyyy-mm-dd'))) || '天'
创新互联公司专注于月湖网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供月湖营销型网站建设,月湖网站制作、月湖网页设计、月湖网站官网定制、小程序制作服务,打造月湖网络公司原创品牌,更为您提供月湖网站排名全网营销落地服务。
from dual
1、取出extract函数选定日期的年部分,然后-1,在连接上月就行了
1) 取出系统日期的年部分: extract(year from sysdate)
2) 将取出的年部分转换成数字类型,然后减1就是上一年了
to_number(extract(year from sysdate))-1
3)取出系统日期的月份不:extract(month from sysdate)
4)与之前的上一年份相连即可
select (to_number(extract(year from sysdate))-1) || '' || extract(month from sysdate) from dual;
2、使用to_char实现
1)将日期类型转换为字符类型,并取出年部分to_CHAR(sysdate,'yyyy')
2)将取出的年部分转换成数字类型,然后减1就是上一年了
to_number( to_CHAR(sysdate,'yyyy'))-1
3)将日期类型转换为字符类型,并取出月部分to_CHAR(sysdate,'MM')
4)与之前的年部分相连即可
select (to_number( to_CHAR(sysdate,'yyyy'))-1) || '-' || to_CHAR(sysdate,'MM') FROM DUAL;
需要当前时间减去365天,以下是步骤:
oracle 两个时间相减默认的是天数
oracle 两个时间相减默认的是天数*24 为相差的小时数
oracle 两个时间相减默认的是天数*24*60 为相差的分钟数
oracle 两个时间相减默认的是天数*24*60*60 为相差的秒数
--MONTHS_BETWEEN(date2,date1)
给出date2-date1的月份
SQL select months_between('19-12月-1999','19-3月-1999') mon_between from dual;
MON_BETWEEN
-----------
9
SQLselect
months_between(to_date('2000.05.20','yyyy.mm.dd'),to_date('2005.05.20','yyyy.dd'))
mon_betw from dual;
MON_BETW
---------
-60
Oracle计算时间差表达式
--获取两时间的相差豪秒数
select ceil((To_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2008-04-
30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss')) * 24 * 60 * 60 * 1000) 相差豪秒数 FROM DUAL;
/*
oracle中有一个月份处理函数
add_months(date,int) 返回一个date型
add_months(to_date(MONTH,'yyyymm'),INTERVAL)
如果需要返回MONTH一致的格式
to_char(add_months(to_date(MONTH,'yyyymm'),INTERVAL),'yyyymm')