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:562014/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-11-25 10:31:11','YYYY-MM-DD HH24:MI:SS'),'HH') A,ROUND(TO_DATE('2013-11-2510:31:11','YYYY-MM-DD HH24:MI:SS'),'MI') B FROM DUAL;

A                              B

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

2013/11/2511:00:00 2013/11/25 10:31:00

11       SESSIONTIMEZONE

格式:SESSIONTIMEZONE

说明:返回当前会话的时区

举例:

SQL>SELECT SESSIONTIMEZONE A FROM DUAL;

A

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

+08:00

12       SYS_EXTRACT_UTC

格式:SYS_EXTRACT_UTC(datetime_wuth_timezone)

说明:返回UTC时间

举例:

SQL>SELECT SYS_EXTRACT_UTC(SYSTIMESTAMP) A FROM DUAL;

A

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

24-6月-14 03.05.09.136892上午

13       SYSDATE

格式:SYSDATE

说明:返回当前时间,数据库驻留的操作系统时间

举例:

SQL>SELECT SYSDATE A  FROM DUAL;

A

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

2014/6/2411:06:24

14       SYSTIMESTAMP

格式:SYSTIMESTAMP

说明:返回系统时间,包含时区信息,带微秒

举例:

SQL>SELECT SYSTIMESTAMP A FROM DUAL;

A

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

24-6月-14 11.09.50.997760上午 +08:00

15       TRUNC

格式:TRUNC(d[,fmt])

说明:截断日期,只有d一个参数时,返回日期时间。

fmt为yyyy或者yy时,返回当年第一天

fmt为mm时,返回当月第一天

fmt为dd时,返回当前年月日

fmt为d时,返回当前星期的第一天

fmt为hh时,截取到当前的小时

fmt为mi时,截取到当前的分钟

举例:

SQL>SELECT TRUNC(TO_DATE('2013-11-25 10:31:11','YYYY-MM-DD HH24:MI:SS')) A FROM DUAL;

A

-----------

2013/11/25

SQL>SELECT TRUNC(TO_DATE('2013-11-25 10:31:11','YYYY-MM-DD HH24:MI:SS'),'YYYY')A,TRUNC(TO_DATE('2013-11-25 10:31:11','YYYY-MM-DD HH24:MI:SS'),'YY') B  FROM DUAL;

A          B

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

2013/1/1   2013/1/1

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

A          B

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

2013/11/1  2013/11/25

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

A

-----------

2013/11/24

SQL>SELECT TRUNC(TO_DATE('2013-11-25 10:31:11','YYYY-MM-DD HH24:MI:SS'),'HH') A,TRUNC(TO_DATE('2013-11-2510:31:11','YYYY-MM-DD HH24:MI:SS'),'MI') B FROM DUAL;

A                  B

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

2013/11/2510:00:00 2013/11/25 10:31:00

Oracle中与日期时间有关的运算函数的更多相关文章

  1. Oracle中有关日期的语法

    Oracle中有关日期的语法 Oracle提供了丰富的日期函数.利用日期函数可以灵活的对日期进行运算. to_date()函数——将字符串转换为日期型 to_date()函数用于将字符串转换为日期.被 ...

  2. Android中关于日期时间与时区的使用总结

    在开发Android的过程中,出现过几次由于日期时间导致的问题,而且主要是由于时区的原因导致,所以一直想总结一下,形成一个良好的开发规范.   一.Unix时间戳   Unix时间戳(Unix tim ...

  3. 在mysql数据库中关于日期时间字段的处理

    在mysql数据库中关于日期时间字段的处理 在开发中,日期时间字段一般有如下几种设计 假设要获取2013-08-15日到2013-08-16日之间的记录 1. 直接使用日期时间类字段 相关sql语句如 ...

  4. SQL-27 给出每个员工每年薪水涨幅超过5000的员工编号emp_no、薪水变更开始日期from_date以及薪水涨幅值salary_growth,并按照salary_growth逆序排列。 提示:在sqlite中获取datetime时间对应的年份函数为strftime('%Y', to_date)

    题目描述 给出每个员工每年薪水涨幅超过5000的员工编号emp_no.薪水变更开始日期from_date以及薪水涨幅值salary_growth,并按照salary_growth逆序排列. 提示:在s ...

  5. oracle 生成随机日期+时间

    oracle 生成随机日期+时间 SELECT to_date(TRUNC(DBMS_RANDOM.VALUE(to_number(to_char(to_date('20110101','yyyymm ...

  6. Oracle中的日期数据类型

    TimeStamp日期类型 TimeStamp数据类型用于存储日期的年.月.日,以及时间的小时.分和秒,其中秒值精确到小数点后6位,该数据类型 同时包含时区信息.systimestamp函数的功能是返 ...

  7. 【Java8新特性】关于Java8中的日期时间API,你需要掌握这些!!

    写在前面 Java8之前的日期和时间API,存在一些问题,比如:线程安全的问题,跨年的问题等等.这些问题都在Hava8中的日期和时间API中得到了解决,而且Java8中的日期和时间API更加强大.立志 ...

  8. MYSQL 中常用日期时间函数使用

    MySQL Date 函数 下面的表格列出了 MySQL 中最重要的内建日期函数: 函数 描述 NOW() 返回当前的日期和时间 CURDATE() 返回当前的日期 CURTIME() 返回当前的时间 ...

  9. SQL中的日期时间函数

    之所以把日期时间函数单独拿出来回顾一下,是因为这一部分的内容比较独立,C#中也有类似的日期时间函数,趁着想得起来,写个标题先.

随机推荐

  1. js ~取非运算符的妙用,将-1转为0(或假值)

    典型的运用场景就是indexOf

  2. Js/jQuery实时监听输入框值变化

    前言 在做web开发时候很多时候都需要即时监听输入框值的变化,以便作出即时动作去引导浏览者增强网站的用户体验感.而采用onchange时间又往往是在输入框失去焦点(onblur)时候触发,有时候并不能 ...

  3. Atitit.web 视频播放器classid clsid 大总结quicktime,vlc 1. Classid的用处。用来指定播放器 1 2. <object> 标签用于包含对象,比如图像、音

    Atitit.web 视频播放器classid clsid 大总结quicktime,vlc 1. Classid的用处.用来指定播放器 1 2. <object> 标签用于包含对象,比如 ...

  4. CYQ学习主要摘要

    这个个人搞的框架不知道到底怎么样,做个项目测试下看看,本来想用EF的,大多数人说性能低,所以先放弃,试试这个,一些主要地方我做个摘录 5:多表怎么搞定? A:视图方式,将多表查询放到数据库里成视图,情 ...

  5. 【Android】13.1 用Android自带的API访问SQLite数据库

    分类:C#.Android.VS2015: 创建日期:2016-02-26 一.简介 这一节我们先来看看如何直接用Android自带的API创建和访问SQLite数据库. 1.创建SQLite数据库 ...

  6. Objective-C函数重载规则

    是按照函数标签是否重复来判断是否为一个重载函数的.

  7. 通达OA 几次通过OA进行的足球抢票活动确实对OA系统提出了非常大挑战

    今年集团赞助了中超的足球比赛,有比赛的时候会提前发一些球票.怎么发.发给谁这就是一个问题.后来确定通过OA来抢票. 通过在OA上发表帖子.通过信息提醒.大家看到信息提示后在帖子后面回复,依据回复先后确 ...

  8. Android Camera API/Camera2 API 相机预览及滤镜、贴纸等处理

    Android Lollipop 添加了Camera2 API,并将原来的Camera API标记为废弃了.相对原来的Camera API来说.Camera2是又一次定义的相机 API,也重构了相机 ...

  9. jq实现千分位的转换

    一.千分位转换位整数 var sum = '2,034,300';var x = sum.split(",");var plan_sum = parseFloat(x.join(& ...

  10. 存档格式选择--JSON

    游戏里存档可以直接用lua,但是lua需要有一定编程基础:另外可以用ini,不过ini又太简单了,复杂的 格式无法用ini描述:还可以用xml,它的表达能力非常丰富,甚至有限数据库都用xml来作存储结 ...