gteric 发表于 2018-9-23 09:26:29

Oracle日期比较

  系统时间就是发博客的时间,即2012-8-5。
  1 日期比较
  select * from dual where sysdate>to_date('2000.8.5','yyyy.mm.dd')
  select * from dual where to_date('2012.8.5','yyyy.mm.dd') > to_date('2012.6.5,'yyyy.mm.dd')
  select * from dual where to_date('2012.8.5','yyyy.mm.dd') =to_date('2012.8.5','yyyy.mm.dd')
  2 日期相减
  select (sysdate - to_date('2013.3.1','yyyy.mm.dd')) from dual
  结果 -207.628275462963
  结果是相差的天数,相差的小时分钟秒也被转换为天数
  3 日期间距
  select * from dual where sysdate
  between to_date('2008-08-05 00:00:00','yyyy-mm-dd hh24:mi:ss')
  and to_date('2013-08-05 00:00:00','yyyy-mm-dd hh24:mi:ss')
  4 其他应用
  获取昨天
  select trunc(SYSDATE-1)from dual;
  2012-8-4
  检查一下
  select to_char (trunc(SYSDATE-1),'yyyy-mm-dd HH24:MI:SS') from dual;
  结果 2012-08-04 00:00:00
  获取上个月第一天00:00:00
  select add_months(trunc(sysdate,'MON'),-1) from dual
  select add_months(trunc(sysdate,'MON'),-13) from dual
  结果 2012-7-1
  获取上个月今天00:00:00
  select trunc(add_months(sysdate,-1)) FROM dual
  结果 2012-7-5
  获得本季度第一天
  select TRUNC(add_months(SYSDATE,0),'Q') FROM dual
  结果 2012-7-1
  获得上季度第一天
  select TRUNC(add_months(SYSDATE,-3),'Q') FROM dual
  结果 2012-4-1
  获得去年1月1日
  to_char(add_months(trunc(sysdate, 'Year'), -12), 'YYYY-MM-DD')
  结果 2011-01-01
  相减
  to_date('20110105','YYYYMMDD')-7 此处7代表天
  结果 2010-12-29
  原帖地址:http://www.cnblogs.com/xd502djj/archive/2010/08/24/1807565.html

页: [1]
查看完整版本: Oracle日期比较