菜鸟学堂 -【Oracle 时间 一】

1、oracle支持对日期进行运算
2、日期运算时是以天为单位进行的
3、当需要以分秒等更小的单位算值时,按时间进制进行转换即可
4、进行时间进制转换时注意加括号,否则会出问题

trunc在时间运算中使用较多

select trunc(sysdate) from dual

oracle时间操作中1代表1天,可以转换成小时分等

trunc(sysdate)+1       当前时间+1天

trunc(sysdate)+1/24  当前时间加1/24天(一天24小时嘛),也就是1个小时生气


trunc(sysdate)+ 1 / (24*60) 把一天转化成24小时*60分钟,1/(24*60)也就是1分钟

那么你都会算了吧骂人,第一次看的时候真蛋疼。


1。上月末天:
SQL> selectto_char(add_months(last_day(sysdate),-1),'yyyy-MM-dd') LastDayfrom
dual;

LASTDAY
----------
2005-05-31

2。上月今天
SQL> selectto_char(add_months(sysdate,-1),'yyyy-MM-dd') PreToday fromdual;


PRETODAY
----------
2005-05-21

3.上月首天
SQL> selectto_char(add_months(last_day(sysdate)+1,-2),'yyyy-MM-dd') firstDayfrom dual;

FIRSTDAY
----------
2005-05-01

4.按照每周进行统计
SQL> select to_char(sysdate,'ww') from dual group byto_char(sysdate,'ww');

TO
--
25

5。按照每月进行统计
SQL> select to_char(sysdate,'mm') from dual group byto_char(sysdate,'mm');

TO
--
06

6。按照每季度进行统计
SQL> select to_char(sysdate,'q') from dual group byto_char(sysdate,'q');

T
-
2

7。按照每年进行统计
SQL> select to_char(sysdate,'yyyy') from dual groupby to_char(sysdate,'yyyy');

TO_C
----
2005

8.要找到某月中所有周五的具体日期
select to_char(t.d,'YY-MM-DD') from (
select trunc(sysdate, 'MM')+rownum-1 as d
from dba_objects
where rownum < 32) t
where to_char(t.d, 'MM') = to_char(sysdate, 'MM')--找出当前月份的周五的日期

and trim(to_char(t.d, 'Day')) = '星期五'
--------
03-05-02
03-05-09
03-05-16
03-05-23
03-05-30 


9.当前月之前的3个月

select add_months(last_day(sysdate)+1,-4),add_months(last_day(sysdate),-1)  from dual





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值