当前位置:首页 > 开发 > 数据库 > 正文

Oracle 日期函数

发表于: 2011-11-23   作者:李大龙   来源:转载   浏览次数:
摘要: Oracle对于时间和日期的存储和处理主要是 date 类型和 timestamp 类型,本文主要是摘要Oracle的基本的日期函数。 1. DATE 类型 和 TIMESTAMP 数据类型     DATE类型是Oracle数据库用户用得比较多的一个数据类型,它存储一个日期数据,不仅包括年、月、日,而且包括时、分、秒。SYSDATE是一个特殊列(伪列),存储当前

Oracle对于时间和日期的存储和处理主要是 date 类型和 timestamp 类型,本文主要是摘要Oracle的基本的日期函数。

1. DATE 类型 和 TIMESTAMP 数据类型

    DATE类型是Oracle数据库用户用得比较多的一个数据类型,它存储一个日期数据,不仅包括年、月、日,而且包括时、分、秒。SYSDATE是一个特殊列(伪列),存储当前系统目前的日期时间。

    DATE数据类型的主要问题是它粒度只到秒,ORACLE已经在DATE数据类型上扩展出来了TIMESTAMP数据类型,它包括了所有DATE数据类型的年月日时分秒的信息,而且包括了小数秒的信息。和SYSDATE对应的,SYSTIMESTAMP是存储当前系统日期时间的一个时间戳类型的伪列。

    DATE类型和TIMESTAMP类型的转换需要用到CAST函数,下面就对这两个类型的一些基本的函数进行摘录和备份。

2. 基本函数和功能。

    2.1 TO_DATE 、 TO_TIMESTAMPTO_CHAR 是我们日常用得最多的关于日期的函数,

          是把字符串按照特定的格式转换成date类型、timestamp类型 ,或者把date类型转换成字符串。

          格式: TO_DATE(STRING, 'format')

                     TO_TIMESTAMP(STRING, 'format')

                     TO_CHAR(DATE/TIMESTAMP, 'format')

         EXAMPLES:

              select to_date('2011/11/24 10:51:23', 'yyyy/mm/dd hh24:mi:ss') from dual; 

 

              select to_timestamp('2011/11/24 10:51:23123456', 'yyyy/mm/dd hh24:mi:ss:ff') from dual; 

 

              select to_char(sysdate, 'yyyy/mm/dd hh24:mi:ss') from dual;  

    2.2 ADD_MONTHS

          格式: ADD_MONTHS(date, count)

          含义: 将 count 个月份加在 date 日期上(负则减)。

          EXAMPLE:

               select add_months(sysdate, 6) from dual ;  -- 表示半年后的今天

    2.3 LAST_DAY

          格式:LAST_DAY(date)

          含义:date所处月份的最后一天

          EXAMPLE:

               select last_day(sysdate) from dual ; -- 表示本月的最后一天(只到日期,时分秒和 sysdate 一样)

    2.4 NEXT_DAY

          格式: NEXT_DAY(date, 'day')

          含义: 求出date之后下一个星期(day)天的日期,

                    其中day的含义是星期天、星期一...星期六,实际格式和数据库日期格式语言有关.

                        数据库日期语言是英语:day = 'SUNDAY' / 'MONDAY' / 'TUESDAY'... /'SATURDAY'

                        数据库日期语言是简体众位:day = '星期日' / '星期一' / '星期二'... /'星期六'

                        通用的,可以用数字代替:1表示星期天,2表示星期一,3表示星期二...7表示星期六。

           EXAMPLE:

                select t.value from v$nls_parameters t where t.PARAMETER = 'NLS_DATE_LANGUAGE' ;

                -- 查看我数据库的日期语言为 SIMPLIFIED CHINESE

                select next_day(sysdate, '星期五') from dual ; -- 下个星期五的日期

                select next_day(sysdate, 6) from dual ;         -- 下个星期五的日期

    2.5 MONTHS_BETWEEN

          格式: MONTHS_BETWEEN(date1, date2)

          含义: 返回date1和date2两个日期之间的月份数,如果计算结果不是整数,ORACLE会把31作为分母来计算。

          EXAMPLES:

              select months_between(sysdate, sysdate-1) from dual ;-- 返回0.032258064516129 就是1/31。

              select months_between(sysdate, add_months(sysdate,1) from dual ; -- 返回 1

    2.6 EXTRACT

          格式: EXTRACT(timeunit FROM datetime)

          含义: 从日期值中提取部分日期,如从一个日期提取月份值。

EXTRACT (
{ YEAR | MONTH | DAY | HOUR | MINUTE | SECOND }
| { TIMEZONE_HOUR | TIMEZONE_MINUTE }
| { TIMEZONE_REGION | TIMEZONE_ABBR }
FROM { date_value | interval_value } )

注意:1. You can only extract YEAR, MONTH, and DAY from a DATE.
         2. You can only extract TIMEZONE_HOUR and TIMEZONE_MINUTE from a timestamp with a time zone datatype.


 

          EXAMPLES:

            select extract(YEAR FROM SYSDATE) from dual ;  -- 返回 2011

            select extract(MONTH FROM SYSDATE) from dual ; -- 返回 11

            更多可以参考:http://blog.csdn.net/bobo12082119/article/details/6427847

    2.7 ROUND/TRUNC

          ROUND(date [, format ] )    四舍五入,format默认为天。

          TRUNC(date [, format ] )    取精度,不作四舍五入,直接去掉尾数。 format 默认截取到天。

    2.8 GREATEST / LEAST

          GREATEST / LEAST 函数也可以用于日期列表,返回的是 最近/最早 的日期。

    2.9 时区相关函数不作整理,用得地方不多。

Oracle 日期函数

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
clock测定运行时间函数 #include"stdio.h" #include"time.h" #include"dos.h" #include"Windows.h"
首页 新闻 论坛 问答 博客 招聘 <a id="msna" sty
写在前面 mysql的学习,断断续续,今天就接着学习mysql的日期操作吧。 系列文章 mysql之创建数据库
首页 新闻 论坛 问答 博客 招聘 更多 ▼ <div style="margin-top: 3px; m
本文为转载文章 基础部分 一、MySQL 获得当前日期时间 函数 1.1 获得当前日期+时间(date + time)
在写日历组件和旅行相关频道开发的过程中,很多需要地方需要和日期对象打交道。拿京东旅游首页来说
1:比较大小函数 SIGN sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1 ,例如: 引用 a=10
字符串函数对二进制数据、字符串和表达式执行不同的运算。此类函数作用于CHAR、VARCHAR、 BINARY、
由于自己实际工作学习中没怎么用时间和日期的函数,在看Unix环境高级编程6.10节和Python的time模块
  日期和时间函数主要用来处理日期和时间值,本篇主要介绍各种日期和时间函数的功能和用法,一般
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号