设为首页 加入收藏

TOP

ORACLE函数之日期时间运算函数(一)
2015-07-24 10:06:29 来源: 作者: 【 】 浏览:4
Tags:ORACLE 函数 日期 时间 运算
1 ADD_MONTHS

格式:ADD_MONTHS(D,N)

说明:返回日期时间D加N月后对应的日期时间。N为正时则表示D之后;N为负时则表示为D之前;N为小数则会自动先删除小数部分,而用整数部分

举例:

SQL>SELECT ADD_MONTHS(SYSDATE,7) A,ADD_MONTHS(SYSDATE,-7) B,ADD_MONTHS(SYSDATE,7.9)C FROM DUAL;

A B C

------------------------------------- ------------------

2015/1/2016:07:02 2013/11/20 16:07:02 2015/1/20 16:07:02

2 CURRENT_DATE

格式:CURRENT_DATE

说明:返回当前会话时区所对应的日期

举例:SQL> SELECTCURRENT_DATE A FROM DUAL;

A

-------------------

2014/6/2016:09:04

3 CURRENT_TIMESTAMP

格式:CURRENT_TIMESTAMP([P])

说明:返回当前会话时区所对应的日期时间时间戳。P为精度,可以是O—9之间的一个整数,默认为6

举例:

SQL>SELECT CURRENT_TIMESTAMP A,CURRENT_TIMESTAMP(9) B FROM DUAL;

A B

----------------------------------------------------------------------------------------------

20-6月-14 04.12.33.402000 下午 +08:00 20-6月 -1404.12.33.402000000 下午 +08:00

4 DBTIMEZONE

格式:DBTIMEZONE

说明:返回数据库时区

举例:

SQL>SELECT DBTIMEZONE A FROM DUAL;

A

------

+00:00

5 EXTRACT

格式:EXTRACT(C,FROM D)

说明:返回日期时间D中指定的部分C。C的取值为YEAR,MONTH,DAY,HOUR,MINUTE,SECOND,TIMEZONE_HOUR,TIMEZONE_MINUTE, TIMEZONE_REGION, TIMEZONE_ABBR。指定的C必须在D中存在

举例:

抽取年月日

SQL>SELECT EXTRACT(YEAR FROM SYSDATE) A,EXTRACT(MONTH FROM SYSDATE) B,EXTRACT(DAYFROM SYSDATE) C FROM DUAL;

A B C

-------------------- ----------

2014 6 20

抽取时分秒不能从SYSDATE中抽取,SYSTIMESTAMP返回的UTC标准时间

SQL>SELECT EXTRACT(HOUR FROM SYSTIMESTAMP) A,EXTRACT(MINUTE FROM SYSTIMESTAMP)B,EXTRACT(SECOND FROM SYSTIMESTAMP) C FROM DUAL;

A B C

-------------------- ----------

8 26 50.052

6 LAST_DAY

格式:LAST_DAY(D)

说明:返回日期D所在月份的最后一天

举例:

SQL>SELECT LAST_DAY(SYSDATE) A FROM DUAL;

A

------------------

2014/6/3016:40:08

7 LOCALTIMESTAMP

格式:LOCALTIMESTAMP([p])

说明:返回当前会话时区的日期时间。P为精度,可以是0-9之间的一个整数,默认为6。与CURRENT_TIMESTAMP在返回值的数据类型上有区别

举例:

SQL>SELECT LOCALTIMESTAMP(4) A FROM DUAL;

A

--------------------------------------------------------------------------------

20-6月-14 04.42.09.2800 下午

8 MONTHS_BETWEEN

格式:MONTHS_BETWEEN(D1,D2)

说明:返回日期D1和D2之间相差的月数。如果D1小于D2,则返回负数:如果D1和D2的天数相同或都是月底,则返回整数;或者Oracle以每月31天为准计算结果的小数部分

举例:

SQL>SELECT MONTHS_BETWEEN(SYSDATE,TO_DATE('2013-12-31','YYYY-MM-dd'))A,MONTHS_BETWEEN(SYSDATE,TO_DATE('2015-12-1','YYYY-MM-dd')) A FROM DUAL;

A A

--------------------

5.66771318-17.364544

9 NEXT_DAY

格式:NEXT_DAY(D,C)

说明:返回日期D后的下一个C。C是一个字符串,表示用当前会话语言表示的一周中某一天的全称(如星期一、星期二等),也可以是数值。

举例:SQL> SELECTNEXT_DAY(SYSDATE,3) A, NEXT_DAY(SYSDATE,'星期一') B FROM DUAL;

A B

-------------------------------------------

2014/6/2416:48:56 2014/6/23 16:48:56

10 ROUND

格式:ROUND(date,fmt)

说明:日期的四舍五入。

fmt为year或者YY,按**1-6月和7-12月**四舍五入到最近的几几年1月1日

fmt为month或者MM,按**1-15日和16-30日**四舍五入到最近的几月1日

fmt为day,按**周一到周三和周四到周日**四舍五入到最近的周日

fmt为DD,如果小时超过12,向前进1

fmt为HH,如果分超过30,向前进1

fmt为分MI,到分,秒数30是分界线,相当于四舍五入的5,如果秒超过30,向前进1

fmt为秒SS,精确到秒

举例:

SQL>SELECT ROUND(TO_DATE('2013-11-24 10:31:11','YYYY-MM-DD HH24:MI:SS'),'YY') AFROM DUAL;

A

-----------

2014/1/1

SQL>SELECT ROUND(TO_DATE('2013-11-24 10:31:11','YYYY-MM-DD HH24:MI:SS'),'MM') AFROM DUAL;

A

-----------

2013/12/1

SQL>SELECT ROUND(TO_DATE('2013-11-25 10:31:11','YYYY-MM-DD HH24:MI:SS'),'Day')A,ROUND(TO_DATE('2013-11-25 10:31:11','YYYY-MM-DD HH24:MI:SS'),'DD') B FROMDUAL;

A B

----------------------

2013/11/24 2013/11/25

SQL>SELECT ROUND(TO_DATE('2013-1

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇如何获取oracleRAC11gasmspfile的.. 下一篇Oracle使用游标为所有用户表添加..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C/C++ 类模板与模板 (2025-12-27 01:49:52)
·C语言 模板化<templ (2025-12-27 01:49:49)
·C/C++模板类模板与函 (2025-12-27 01:49:46)
·如何理解c语言指针和 (2025-12-27 01:19:11)
·为什么C标准库没有链 (2025-12-27 01:19:08)