菜鸟学堂 -【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
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
相关文章推荐
- 菜鸟学堂 -【Oracle Java Sources 】
- 菜鸟学堂 -【Oracle 分析函数over(),row_number()】
- 一些常见的Oracle时间、日期的用法
- Oracle里时间的应用
- Oracle trunc()函数的用法(主要用于截取时间)
- 在JSP中获取oracle中的时间戳类型的字段并显示
- Oracle date timestamp 毫秒 - 时间函数总结(转)
- Oracle 时间计算
- Oracle获得当前系统时间
- oracle日期字段只取日期不要时间
- oracle中取当前时间和某时间字段的差值
- oracle 数据库 时间前一天前一年前一个月
- Oracle时间函数
- Oracle中,将number类型的毫秒数转换为时间格式
- 小菜鸟问:oracle中的一个触发器问题
- oracle一些和时间有关的函数
- oracle计算时间差的问题
- Oracle的时间函数
- oracle --date-对应 mysql 时间类型的以及空值的处理
- update 语句的特殊使用,oracle时间列加一天,加一小时,加一分钟