oracle使用日期进行查询

来源:互联网 发布:java文件阅读器下载 编辑:程序博客网 时间:2024/06/04 19:38

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 0
原创粉丝点击