您的位置:首页 > 数据库 > Oracle

菜鸟学堂 -【Oracle 时间 一】

2012-04-20 08:48 148 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: