重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
SELECT REGENDDATE FROM TABLE WHERE SYSDATE = ADD_MONTHS('Y',3,REGENDDATE)
创新互联长期为1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为建昌企业提供专业的网站制作、网站设计,建昌网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。
如果REGENDDATE是字符型的话,自己转一下吧!~
需要转换成date格式进行比较,或者直接比较也可以。
比如时间格式是2104-01-01 00:00:00。
语法:
select sign(to_date('2015-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss') -
to_date('2015-01-02 00:00:00', 'yyyy-mm-dd hh24:mi:ss'))
from dual
如果返回值为-1,则前边的日期较小;返回值为0,则两个值一样大;返回值为1,则后边的日期较小。
这个是天数
如果计算小时就用 300*24
如果计算分钟就用 300*24*60
如果计算秒数就用 300*24*60*60
代码如下:
d2 := to_date('20190528','yyyymmdd');
d3 := to_date('20170101','yyyymmdd');
d4 := sysdate;
if d1d3 then --格式不同进行比较
dbms_output.put_line('d1d3');
end if;
if d2d3 then --格式相同比较
dbms_output.put_line('d2d3');
end if;
if d1d4 then --格式不同进行比较
dbms_output.put_line('d1d4');
end if;
dbms_output.put_line('d4是:'||d4);
end;
扩展资料
oracle sql日期比较
oracle sql日期比较:
在今天之前:
select * from up_date where update to_date('2007-09-07 00:00:00','yyyy-mm-dd hh24:mi:ss')
select * from up_date where update = to_date('2007-09-07 00:00:00','yyyy-mm-dd hh24:mi:ss')
在今天只后:
select * from up_date where update to_date('2007-09-07 00:00:00','yyyy-mm-dd hh24:mi:ss')
select * from up_date where update = to_date('2007-09-07 00:00:00','yyyy-mm-dd hh24:mi:ss')
精确时间:
select * from up_date where update = to_date('2007-09-07 00:00:00','yyyy-mm-dd hh24:mi:ss')
时间日期字段在数据库底层都是以时间戳的形式存储的,日期比较其实就简单的转换成了时间戳的比较, 也就是数字的比较
时间戳就是 格林威治时间1970年01月01日00时00分00秒到指定日期时间之间的秒数
2012-01-11 00:00:00的时间戳就是1326211200比较时间字段,底层实际比较的就是这个数字的时间戳