Oracle中Date类型的处理

dual伪列:
dual 是 Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的select语句块中。

sysdate 为获取系统时间

select sysdate from dual

格式化 系统时间 并转换为String类型

select to_char(sysdate, 'yyyy-MM-dd') from dual
select to_char(sysdate, 'YYYY/MM/DD HH24:MI:SS') from dual

格式化 系统时间 并转换为Date类型

select to_date(sysdate, 'yyyy-MM-dd') from dual
select to_date(sysdate, 'YY/MM/DD HH:MI:SS') from dual

日期的增减

-- 当前日期增加7天
select sysdate + interval '7' day from dual
-- 当前日期减去10小时
select sysdate - interval '10' hour from dual
-- 当前日期减去5分钟
select sysdate - interval '5' MINUTE from dual
-- 当前日期加上1年
select sysdate + interval '1' year from dual
-- 也可以使用add_months方法
-- 当前日期增加4个月
select add_months(sysdate,4) from dual

实际情况

日期为Number类型的时候例如:testtime : 20190722
你希望跟当前时间作比较

-- 判断testtime增加10个月和当前日期比较大小
select distinct * from table
    where to_date(to_char(sysdate,'yyyy-MM-dd'), 'yyyy-MM-dd') 
    	<= (select add_months(to_date(to_char(testtime), 'yyyymmdd'),10) from dual)
-- 跟系统时间比较大小
select distinct * from table
	where to_char(add_months(to_date(sxrq, 'YYYYMMDD'), pxn * 12 + pxy),'YYYYMMDD') >= to_char(to_date(sysdate),'YYYYMMDD' )
        AND to_char(to_date(pjrq, 'YYYYMMDD'), 'YYYYMMDD')<=to_char(to_date(sysdate),'YYYYMMDD' )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值