`
李大龙
  • 浏览: 72058 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Oracle 日期函数

阅读更多

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 时区相关函数不作整理,用得地方不多。

分享到:
评论
1 楼 sea0108 2011-11-24  
向楼主致敬!加油!我们永远支持你!

相关推荐

    Oracle日期函数练习

    Oracle 日期函数练习 Oracle 日期函数是 Oracle 数据库中的一组功能强大且广泛使用的函数,它们可以对日期进行各种操作和计算,本次练习涵盖了 Oracle 中常用的日期函数,包括获取当前系统时间、对日期的月进行加减...

    oracle日期函数

    "Oracle 日期函数详解" Oracle 日期函数是数据库管理系统中经常使用到的函数,用于处理日期和时间相关的操作。下面是 Oracle 日期函数的详细介绍: 1. 日期和字符转换函数 Oracle 提供了两个重要的日期和字符转换...

    oracle日期函数全面总结

    通过学习和掌握以上Oracle日期函数,你可以轻松地进行日期和时间的计算、比较和格式化,提升数据库操作的效率。同时,了解如何处理时区问题也是非常重要的,特别是在分布式系统中。希望这些知识对你在处理Oracle...

    Oracle日期函数大全[文].pdf

    Oracle日期函数大全 Oracle日期函数大全是Oracle数据库中处理日期和时间的函数大全,包括TO_DATE、TO_CHAR等函数。这些函数可以对日期和时间进行各种操作,例如将日期转换为字符串、获取当前日期和时间、计算两个...

    oracle日期函数字符函数聚合函数

    日期函数主要用于处理和操作日期数据,以下是一些主要的Oracle日期函数: 1. **MONTHS_BETWEEN(date1, date2)**: 计算date1和date2之间的月份数,结果是一个浮点数,精确到日。例如,MONTHS_BETWEEN('01-EP-95','11...

    oracle日期函数集锦

    ### Oracle 日期函数集锦详解 #### 一、Oracle 常用日期数据格式 在 Oracle 数据库中,处理日期非常频繁,为了更好地理解和使用这些日期格式化功能,以下是一些常用的日期数据格式: 1. **Y/YY/YYYY**:表示年的...

    Oracle日期函数大全

    Oracle日期函数大全 常用日期数据格式

    Oracle日期函数大礼包

    ### Oracle日期函数大礼包:初学者必学的知识 在Oracle数据库中,日期处理是一项非常重要的功能,尤其是在数据处理、报表生成以及各种业务逻辑实现时。本文将深入介绍Oracle中的日期函数,包括`TO_DATE`、`TO_CHAR`...

    2021-2022收藏的精品资料Oracle日期函数大全.docx

    ### Oracle日期时间函数概述 Oracle提供了丰富的日期时间处理功能,这使得开发人员能够方便地处理与日期时间相关的数据。在Oracle数据库中,日期时间数据类型包括DATE和TIMESTAMP两种。本篇文章将主要介绍日期相关...

    Oracle日期函数大全.pdf

    Oracle数据库系统提供了丰富的日期时间处理函数,用于对日期和时间数据...以上就是Oracle日期函数的一些基本使用,它们在处理日期和时间数据时非常有用。在实际开发中,根据需求选择合适的函数可以极大地提高工作效率。

    Oracle日期函数集锦

    在这个"Oracle日期函数集锦"中,我们将深入探讨一系列常用的Oracle日期函数及其用法。 首先,我们来看日期数据的常见格式: 1. `Y`、`YY`、`YYY`:分别表示年份的最后一位、两位和三位。例如,`to_char(sysdate,'Y...

    oracle 日期函数

    ### Oracle日期函数基础知识 Oracle数据库提供了丰富的日期处理功能,通过一系列内置的日期函数来满足各种日期时间的操作需求。这些函数可以帮助用户实现日期格式转换、日期计算、日期比较等功能。 ### TO_DATE 和...

    学习ORACLE日期函数一分析.pdf

    Oracle日期函数的强大之处在于它们的灵活性和丰富的格式选项,可以根据需求精确地处理和格式化日期时间数据。在实际应用中,理解并熟练运用这些函数能够提高数据处理的效率和准确性。除此之外,还有其他高级日期函数...

    Oracle日期函数

    ### Oracle日期函数详解 在Oracle数据库中,处理日期与时间数据是常见的需求之一。通过使用一系列内置的日期函数,可以方便地对日期进行各种操作,包括获取当前日期、计算两个日期之间的差值、添加或减少月份数等。...

    oracle自定义日期函数

    Oracle 自定义日期函数 Oracle 日期处理函数是数据库管理系统中非常重要的一部分,最近看到有人在做 T-SQL 与 PL/SQL 的转化,问了些有关时间函数的处理。在 PL/SQL 中,Oracle 提供了其他的方法来处理日期函数,...

    ORACLE常用日期函数集合

    本文将详细介绍一些常用的Oracle日期函数及其应用场景,帮助数据库管理员或开发者更好地理解和运用这些函数,以提高数据处理的效率和准确性。 #### 二、格式化日期 在Oracle中,`to_char()`函数被广泛用于将日期...

Global site tag (gtag.js) - Google Analytics