Oracle中关于时间的一些处理

       最近在做项目,一时时间的处理方法不知所措,所以最近研究了一下!                      

      这些是在写SQL语句时候很有效的方法,原来我用很笨的方法,现在自己探索了一下,其实在oracle中很多自带的日期处理函数还是很有用的,下面列出本人所写的一些供参考:                

     1.获取两个日期之间的天数:select (sysdate-to_date("2008-4-5","yyyy-MM-dd")) from dual;   获得的是今天到08年4月5号之间的天数. select round(sysdate-add_months(sysdate, -1)) from dual;查询的是一个月前今天到现在的天数,获得的天数四舍五入.如果把round改为trunc则去掉小数部分.            

      2.获得两个日期之间的月数select months_between(sysdate,to_date('2005-11-12','yyyy-mm-dd')) from dual;获得从08年11月12号到现在的月数!       

     3.获得改变后的时间,A:select sysdate-1 from dual 获得一天后(+1)时间或者一天前(-1)的时间;B:获得当前时间减1天减1小时的时间select sysdate-1-1/24 from dual;依次类推获得当前时间减1天减1小减1分钟减1秒钟时间即为:select sysdate-1-1/24-1/(24*60)-1/(24*60*60).       

      4.获得上月第一天select to_char(add_months(last_day(sysdate)+1,-2),'yyyy-MM-dd') firstDay from dual;

       5.获得上月今天select to_char(add_months(sysdate,-1),'yyyy-MM-dd')  from dual;

       6.获得上月最后一天select to_char(add_months(last_day(sysdate),-1),'yyyy-MM-dd') from dual;

       7.按周进行统计select to_char(sysdate,'ww') from dual group by to_char(sysdate,'ww');

       8.月进行统计select to_char(sysdate,'mm') from dual group by to_char(sysdate,'yyyymm');

       9.按年进行统计select to_char(sysdate,'yyyy') from dual group by to_char(sysdate,'yyyy');

       10.按季度进行统计:select to_char(sysdate,'q') from dual group by to_char(sysdate,'q');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值