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

43.Oracle数据库SQL开发之 日期和时间的存储与处理——使用时间值函数

2015-11-09 22:04 1136 查看
43.Oracle数据库SQL开发之 日期和时间的存储与处理——使用时间值函数
欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/49745645

时间值函数用于获取或处理时间值和时间戳。

1.  ADD_MONTHS函数

ADD_MONTHS(x,y)用于计算x加上y个月的结果。如果y是负数,就从x中减去y个月。
执行如下:
store@PDB1>select add_months('01-jan-2007',13) from dual;
ADD_MONTH
---------
01-FEB-08
store@PDB1>select add_months('01-jan-2008',-13) from dual;
 
ADD_MONTH
---------
01-DEC-06
ADD_MONTHS函数可以用于时间和日期,例如:
store@PDB1>select add_months(to_date('01-jan-2007 19:15:26','dd-mon-yyyy hh24:mi:ss'),2)from dual;
 
ADD_MONTH
---------
01-MAR-07

2.  LAST_DAY函数

LAST_DAY函数用于计算包含x的月的最后一天。
显示2008年1月的最后一天:
store@PDB1>select last_day('01-jan-2008') from dual;
 
LAST_DAY(
---------
31-JAN-08

3.  MONTHS_BETWEEN函数

MONTHS_BETWEEN(x,y)用于计算x和y之间有几个月。如果x在日历中比y早,那么返回一个负数。
store@PDB1>select months_between('25-may-2008','15-jan-2008') from dual;
 
MONTHS_BETWEEN('25-MAY-2008','15-JAN-2008')
-------------------------------------------
                                      4.32258065
store@PDB1>select months_between('15-jan-2008','25-may-2008') from dual;
 
MONTHS_BETWEEN('15-JAN-2008','25-MAY-2008')
-------------------------------------------
                                      -4.3225806

4.  NEXT_DAY函数

NEXT_DAY(x,day)用于计算从x开始,下一个day的日期;参数day是一个文本字符串。
执行如下:
store@PDB1>select next_day('01-jan-2008','saturday') from dual;
 
NEXT_DAY(
---------
05-JAN-08

5.  ROUND函数

ROUND(x [, unit]) 用于对x取整。默认,x 取整为最近的一天。
store@PDB1>select round(to_date('25-oct-2008') ,'yyyy') from dual;
 
ROUND(TO_
---------
01-JAN-09
取整最近一月的
store@PDB1>select round(to_date('25-may-2008'),'mm') from dual;
 
ROUND(TO_
---------
01-JUN-08
取整为最近的小时,如下:
store@PDB1>select to_char(round(to_date('25-may-2008 19:45:26','dd-mon-yyyyhh24:mi:ss'),'HH24'),'DD-MON-YYYY HH24:MI:SS') from dual;
 
TO_CHAR(ROUND(TO_DAT
--------------------
25-MAY-2008 20:00:00

6.  SYSDATE

SYSDATE返回数据库服务器的操作系统中设置的当前时间值。
store@PDB1>select sysdate from dual;
SYSDATE
---------
08-NOV-15

7.  TRUNC函数

TRUNC(x [,unit])用于对x截断。默认,x被截断为当天的开始时间。Unit是一个可选字符串参数,指明要截断的单元。MM表示该月第一天。
执行如下,截断为当年的第一天:
store@PDB1>select trunc(to_date('25-may-2008'),'yyyy') from dual;
 
TRUNC(TO_
---------
01-JAN-08
store@PDB1>select trunc(to_date('25-may-2008'),'mm') from dual;
 
TRUNC(TO_
---------
01-MAY-08
阶段为小时,如下:
store@PDB1>select to_char(trunc(to_date('25-may-2008 19:45:26','dd-mon-yyyyhh24:mi:ss'),'hh24'),'dd-mon-yyyy hh24:mi:ss') from dual;
 
TO_CHAR(TRUNC(TO_DAT
--------------------
25-may-2008 19:00:00
 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: