ORACLE函数之日期时间运算函数[通俗易懂]

ORACLE函数之日期时间运算函数

大家好,又见面了,我是全栈君。

1            ADD_MONTHS

格式:ADD_MONTHS(D,N)

说明:返回日期时间DN月后相应的日期时间。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为精度,能够是O9之间的一个整数,默觉得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中指定的部分CC的取值为YEARMONTHDAYHOURMINUTESECONDTIMEZONE_HOURTIMEZONE_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)

说明:返回日期D1D2之间相差的月数。假设D1小于D2,则返回负数:假设D1D2的天数同样或都是月底,则返回整数;或者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)

说明:日期的四舍五入。

fmtyear或者YY,按**1-6月和7-12**四舍五入到近期的几几年11

fmtmonth或者MM。按**1-15日和16-30**四舍五入到近期的几月1

fmtday,按**周一到周三和周四到周日**四舍五入到近期的周日

fmtDD,假设小时超过12,向前进1

fmtHH,假设分超过30,向前进1

fmtMI,到分,秒数30是分界线。相当于四舍五入的5。假设秒超过30。向前进1

fmtSS,精确到秒

举例:

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一个參数时。返回日期时间。

fmtyyyy或者yy时,返回当年第一天

fmtmm时,返回当月第一天

fmtdd时,返回当前年月日

fmtd时。返回当前星期的第一天

fmthh时,截取到当前的小时

fmtmi时,截取到当前的分钟

举例:

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


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116642.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java从入门到精通_学习Java最好的10本书,从入门到精通

    java从入门到精通_学习Java最好的10本书,从入门到精通在当代,学习Java等编程课程的主要方式是视频资源。如果你想学,在网上五分钟之内就可以找到一堆学习视频,瞬间将你的硬盘填满。但是这些课程质量良莠不齐,对于小白来说,的确让人头痛不已。但是,书籍不同。对于书籍而言,它们都是出自业内大牛和资深的大学教授的精心编写,内容好坏与否,有很多同领域的网友都能帮你把关。所以说,如果你选对了学习的书籍,就可以不用担心自己在编程中,埋下错误的种子,同时还可以更深入的…

    2022年7月8日
    16
  • linux如何卸载jdk版本并重装_centos卸载jdk

    linux如何卸载jdk版本并重装_centos卸载jdklinuxcentos7自带了openjdk,这个版本的jdk是缺少一部分功能的,最好重新安装oraclejdk。但在没有卸载openjdk就安装oraclejdk时,部分依赖包装不上,后期程序运行时会出现问题。以下为卸载jdk的步骤(openjdk或oraclejdk)和安装步骤。#1.查看目前系统中包含的jdk版本rpm-qa|grepjdk#2.得到的结果如下:java-1.8.0-openjdk-1.8.0.322.b06-1.e

    2022年10月1日
    2
  • Docker方式安装showdoc

    Docker方式安装showdoc

    2021年6月4日
    107
  • Odin Inspector 系列教程 — 初识 OdinWindow「建议收藏」

    Odin Inspector 系列教程 — 初识 OdinWindow「建议收藏」笔者以往在使用一些插件的时候经常会看上面这种多炫酷的插件操作界面,常常羡慕不已,如今有了Odin,自己也可以简简单单的实现这些炫酷的效果了,下面笔者就带大家初识OdinWindow。创建一个Window不积跬步无以至千里,我们先从最简单的创建一个Window开始,只需要自定义一类并继承OdinEditorWindow即可publiccl…

    2022年7月21日
    20
  • 商品搜索——输入联想|智能提示探索

    商品搜索——输入联想|智能提示探索

    2020年11月12日
    235
  • leetcode55跳跃游戏_跳跃游戏leetcode

    leetcode55跳跃游戏_跳跃游戏leetcode给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例 1:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。示例 2:输入:nums = [3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标

    2022年8月8日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号