oracle使用日期进行查询

1.根据单个日期进行查询时,先将日期转换为字符串再进行查询

select from emp where to_char(hiredate,'yyyy')=1982;

2.根据时间段查询异常多件

seect * from tab where dtcol between to_date('2012-05-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2012-05-31 00:00:00','yyyy-mm-dd hh24:mi:ss')

3.Oracle常用日期取值

select 
  sysdate,
  to_number(to_char(sysdate,'hh24')) 时,
  to_number(to_char(sysdate,'mi'))   分,
  to_number(to_char(sysdate,'ss'))   秒,
  to_number(to_char(sysdate,'dd'))   日,
  to_number(to_char(sysdate,'mm'))   月,
  to_number(to_char(sysdate,'yyyy')) 年,
  to_number(to_char(sysdate,'ddd'))  年内第几天,
  trunc(sysdate,'dd')                一天之始,
  trunc(sysdate,'day')               周初,
  trunc(sysdate,'mm')                月初,
  last_day(sysdate)                  月末,
  add_months(trunc(sysdate,'mm'),1)  下月初,
  trunc(sysdate,'yy')                年初,
  to_char(sysdate,'day')             周几,
  to_char(sysdate,'month')           月份
from
  dual;

SYSDATE    2015-12-09 10:49:51

时         10
分    
     49
秒    
     51
日    
     9
月    
     12
年    
     2015
年内第几天  343
一天之始    2015-12-09
周初       2015-12-06
月初    
   2015-12-01
月末    
   2015-12-31 10:49:51
下月初     2016-01-01
年初       2015-01-01
周几       星期三
月份       12月

4.oracle的trunc与round处理日期和数值的区别
  oracle的 
  trunc(date,[fmt])   
  解释:返回截取时间部分后的DATE,如果有fmt部分的设置,则返回与该部分最近的日期。
  round(date,[fmt])   
  解释:返回将日期date舍入后的DATE,如果有fmt部分的设置,则按照fmt指定的格式舍入返回DATE。   
  
                     
  一、用trunc函数处理日期
  日期用例 '2008-11-28 12:59:59'周五  
  1.没有fmt部分时
  语句: SELECT   TRUNC(TO_DATE('2008-11-28 12:00:01','YYYY-MM-DD hh24:mi:ss')) FROM   DUAL;
          结果: 2008-11-28  
  
  2.得到最当前日期之前的最近的一个周日的日期
  语句: SELECT   TRUNC(TO_DATE('2008-11-28 12:59:59','YYYY-MM-DD hh24:mi:ss'),'D') FROM   DUAL;   
   结果: 2008-11-23 周日
  语句: SELECT   TRUNC(TO_DATE('2008-11-28 12:59:59','YYYY-MM-DD hh24:mi:ss'),'D')+1 FROM   DUAL;   
   结果: 2008-11-24 周一
  
  3.得到最当前日期的所在月份的第一天
  语句: SELECT   TRUNC(TO_DATE('2008-11-28 12:59:59','YYYY-MM-DD hh24:mi:ss'),'MM') FROM   DUAL;   
   结果: 2008-11-1 
  语句: SELECT   TRUNC(TO_DATE('2008-11-28 12:59:59','YYYY-MM-DD hh24:mi:ss'),'MM')-1 FROM   DUAL; 
  结果: 2008-10-31
  
  4.得到最当前日期的所在年份的第一天
  语句: SELECT   TRUNC(TO_DATE('2008-11-28 12:59:59','YYYY-MM-DD hh24:mi:ss'),'Y') FROM   DUAL;   
   结果: 2008-1-1 
  语句: SELECT   TRUNC(TO_DATE('2008-11-28 12:59:59','YYYY-MM-DD hh24:mi:ss'),'Y')-1 FROM   DUAL; 

  结果: 2007-12-31

oracle中~~如何写一个语句 获得 当前系统时间往前推7天

当前时间减去7分钟的时间
select  sysdate,sysdate - interval '7' MINUTE  from dual
当前时间减去7小时的时间
select  sysdate - interval '7' hour  from dual
当前时间减去7天的时间
select  sysdate - interval '7' day  from dual
当前时间减去7月的时间
select  sysdate,sysdate - interval '7' month from dual
当前时间减去7年的时间
select  sysdate,sysdate - interval '7' year   from dual
时间间隔乘以一个数字
select  sysdate,sysdate - 8 *interval '2' hour   from dual

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值