43.Oracle数据库SQL开发之 日期和时间的存储与处理——使用时间值函数
2015-11-09 22:04
1136 查看
43.Oracle数据库SQL开发之 日期和时间的存储与处理——使用时间值函数
欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/49745645
时间值函数用于获取或处理时间值和时间戳。
执行如下:
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
显示2008年1月的最后一天:
store@PDB1>select last_day('01-jan-2008') from dual;
LAST_DAY(
---------
31-JAN-08
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
执行如下:
store@PDB1>select next_day('01-jan-2008','saturday') from dual;
NEXT_DAY(
---------
05-JAN-08
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
store@PDB1>select sysdate from dual;
SYSDATE
---------
08-NOV-15
执行如下,截断为当年的第一天:
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
欢迎转载,转载请标明出处: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
相关文章推荐
- oracle存储过程中使用其他用户的表或视图
- 如何查看 oracle 官方文档
- oracle参数open_cursors和session_cached_cursor详解!
- Oracle数据库中插入日期型数据
- oracle和其他数据库对表名、列名的长度限制
- oracle listagg函数、lag函数、lead函数 实例
- 关于oracle函数listagg的使用说明
- Oracle CASE WHEN 用法介绍
- oracle恢复删除的数据
- Oracle 阻塞会话的查看与解除
- Oracle 中 sign和decode 函数用法
- 将oracle的Date转换为相应格式输出
- oracle数据库的导出与导入备忘
- Ubuntu Linux下安装Oracle JDK
- oracle系统包——dbms job用法(oracle定时任务)
- oracle 查询杀死死锁方案
- Oracle CASE WHEN 用法介绍
- Oracle如何跳过被锁死的数据
- Oracle 中 decode 函数用法
- Oracle分区表drop和truncate partition索引失效问题