`
deepfuture
  • 浏览: 4437804 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80447
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:71034
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:104316
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:288010
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:15204
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:68628
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32693
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:46373
社区版块
存档分类
最新评论

oracle日期函数集

阅读更多

Oracle在日期使用上允许极大的灵活性。由于可以在日期字段存储时间和日期,从而有函数可以既引用日期又引用时间。
Oracle 所提供的一些日期函数如下所示。
1. SYSDATE
返回当前的日期和时间。
示例
SELECT sysdate FROM dual;

SYSDATE
----------
05-3月 -03

2. ADD_MONTHS(d, no_of_month)
当前日期"m"后推"no_of_month"个月。参数"no_of_month"可为任何整数。
示例
SELECT add_months(sysdate,2) FROM dual;

ADD_MONTHS
----------
05-5月 -03

SELECT add_months(sysdate,-2) FROM dual;

ADD_MONTHS
----------
05-1月 -03

3. LAST_DAY(month_day)
返回变量"month_day"中所指定月份的最后一天的日期。
示例
SELECT last_day(sysdate) FROM dual;

LAST_DAY(S
----------
31-3月 -03

4. MONTHS_BETWEEN(d1, d2)
返回日期 d1 和 d2 之间的月份数。如果 d1 晚于d2,结果为正,否则返回负数。
示例
SELECT months_between(sysdate,to_date('20030101','YYYYMMDD')) FROMdual;

MONTHS_BETWEEN(SYSDATE,TO_DATE('20030101','YYYYMMDD'))

在oracle中有很多关于日期的函数,如:
1、add_months()用于从一个日期值增加或减少一些月份
date_value:=add_months(date_value,number_of_months)
例:
SQL> select add_months(sysdate,12) "Next Year" from dual;

Next Year
----------
13-11月-04

SQL> select add_months(sysdate,112) "Last Year" from dual;

Last Year
----------
13-3月 -13

SQL>

2、current_date()返回当前会放时区中的当前日期
date_value:=current_date
SQL> column sessiontimezone for a15
SQL> select sessiontimezone,current_date from dual;

SESSIONTIMEZONE CURRENT_DA
--------------- ----------
+08:00 13-11月-03

SQL> alter session set time_zone='-11:00'
2/

会话已更改。

SQL> select sessiontimezone,current_timestamp from dual;

SESSIONTIMEZONE CURRENT_TIMESTAMP
--------------- ------------------------------------
-11:00 12-11月-0304.59.13.668000 下午 -11:
00

SQL>

3、current_timestamp()以timestamp with timezone数据类型返回当前会放时区中的当前日期
timestamp_with_time_zone_value:=current_timestamp([timestamp_precision])
SQL> column sessiontimezone for a15
SQL> column current_timestamp format a36
SQL> select sessiontimezone,current_timestamp from dual;

SESSIONTIMEZONE CURRENT_TIMESTAMP
--------------- ------------------------------------
+08:00 13-11月-0311.56.28.160000 上午 +08:
00

SQL> alter session set time_zone='-11:00'
2/

会话已更改。

SQL> select sessiontimezone,current_timestamp from dual;

SESSIONTIMEZONE CURRENT_TIMESTAMP
--------------- ------------------------------------
-11:00 12-11月-0304.58.00.243000 下午 -11:
00

SQL>

4、dbtimezone()返回时区
varchar_value:=dbtimezone
SQL> select dbtimezone from dual;

DBTIME
------
-07:00

SQL>

5、extract()找出日期或间隔值的字段值
date_value:=extract(date_field from[datetime_value|interval_value])
SQL> select extract(month from sysdate) "This Month" fromdual;

This Month
----------
11

SQL> select extract(year from add_months(sysdate,36)) "3 YearsOut" from dual;

3 Years Out
-----------
2006

SQL>

6、last_day()返回包含了日期参数的月份的最后一天的日期
date_value:=last_day(date_value)
SQL> select last_day(date'2000-02-01') "Leap Yr?" fromdual;

Leap Yr?
----------
29-2月 -00

SQL> select last_day(sysdate) "Last day of this month" fromdual;

Last day o
----------
30-11月-03

SQL>

7、localtimestamp()返回会话中的日期和时间
timestamp_value:=localtimestamp
SQL> column localtimestamp format a28
SQL> select localtimestamp from dual;

LOCALTIMESTAMP
----------------------------
13-11月-03 12.09.15.433000
下午

SQL> select localtimestamp,current_timestamp from dual;

LOCALTIMESTAMPCURRENT_TIMESTAMP
----------------------------------------------------------------
13-11月-03 12.09.31.00600013-11月-03 12.09.31.006000 下午 +08:
下午 00

SQL> alter session set time_zone='-11:00';

会话已更改。

SQL> select localtimestamp,to_char(sysdate,'DD-MM-YYYY HH:MI:SSAM') "SYSDATE" from dual;

LOCALTIMESTAMPSYSDATE
---------------------------- ------------------------
12-11月-03 05.11.31.25900013-11-2003 12:11:31 下午
下午

SQL>

8、months_between()判断两个日期之间的月份数量
number_value:=months_between(date_value,date_value)
SQL> select months_between(sysdate,date'1971-05-18') fromdual;

MONTHS_BETWEEN(SYSDATE,DATE'1971-05-18')
----------------------------------------
389.855143

SQL> select months_between(sysdate,date'2001-01-01') fromdual;

MONTHS_BETWEEN(SYSDATE,DATE'2001-01-01')
----------------------------------------
34.4035409

SQL>

9、next_day()给定一个日期值,返回由第二个参数指出的日子第一次出现在的日期值(应返回相应日子的名称字符串)

在oracle中有很多关于日期的函数,如:
1、add_months()用于从一个日期值增加或减少一些月份
date_value:=add_months(date_value,number_of_months)
例:
SQL> select add_months(sysdate,12) "Next Year" from dual;

Next Year
----------
13-11月-04

SQL> select add_months(sysdate,112) "Last Year" from dual;

Last Year
----------
13-3月 -13

SQL>

2、current_date()返回当前会放时区中的当前日期
date_value:=current_date
SQL> column sessiontimezone for a15
SQL> select sessiontimezone,current_date from dual;

SESSIONTIMEZONE CURRENT_DA
--------------- ----------
+08:00 13-11月-03

SQL> alter session set time_zone='-11:00'
2/

会话已更改。

SQL> select sessiontimezone,current_timestamp from dual;

SESSIONTIMEZONE CURRENT_TIMESTAMP
--------------- ------------------------------------
-11:00 12-11月-0304.59.13.668000 下午 -11:
00

SQL>

3、current_timestamp()以timestamp with timezone数据类型返回当前会放时区中的当前日期
timestamp_with_time_zone_value:=current_timestamp([timestamp_precision])
SQL> column sessiontimezone for a15
SQL> column current_timestamp format a36
SQL> select sessiontimezone,current_timestamp from dual;

SESSIONTIMEZONE CURRENT_TIMESTAMP
--------------- ------------------------------------
+08:00 13-11月-0311.56.28.160000 上午 +08:
00

SQL> alter session set time_zone='-11:00'
2/

会话已更改。

SQL> select sessiontimezone,current_timestamp from dual;

SESSIONTIMEZONE CURRENT_TIMESTAMP
--------------- ------------------------------------
-11:00 12-11月-0304.58.00.243000 下午 -11:
00

SQL>

4、dbtimezone()返回时区
varchar_value:=dbtimezone
SQL> select dbtimezone from dual;

DBTIME
------
-07:00

SQL>

5、extract()找出日期或间隔值的字段值
date_value:=extract(date_field from[datetime_value|interval_value])
SQL> select extract(month from sysdate) "This Month" fromdual;

This Month
----------
11

SQL> select extract(year from add_months(sysdate,36)) "3 YearsOut" from dual;

3 Years Out
-----------
2006

SQL>

6、last_day()返回包含了日期参数的月份的最后一天的日期
date_value:=last_day(date_value)
SQL> select last_day(date'2000-02-01') "Leap Yr?" fromdual;

Leap Yr?
----------
29-2月 -00

SQL> select last_day(sysdate) "Last day of this month" fromdual;

Last day o
----------
30-11月-03

SQL>

7、localtimestamp()返回会话中的日期和时间
timestamp_value:=localtimestamp
SQL> column localtimestamp format a28
SQL> select localtimestamp from dual;

LOCALTIMESTAMP
----------------------------
13-11月-03 12.09.15.433000
下午

SQL> select localtimestamp,current_timestamp from dual;

LOCALTIMESTAMPCURRENT_TIMESTAMP
----------------------------------------------------------------
13-11月-03 12.09.31.00600013-11月-03 12.09.31.006000 下午 +08:
下午 00

SQL> alter session set time_zone='-11:00';

会话已更改。

SQL> select localtimestamp,to_char(sysdate,'DD-MM-YYYY HH:MI:SSAM') "SYSDATE" from dual;

LOCALTIMESTAMPSYSDATE
---------------------------- ------------------------
12-11月-03 05.11.31.25900013-11-2003 12:11:31 下午
下午

SQL>

8、months_between()判断两个日期之间的月份数量
number_value:=months_between(date_value,date_value)
SQL> select months_between(sysdate,date'1971-05-18') fromdual;

MONTHS_BETWEEN(SYSDATE,DATE'1971-05-18')
----------------------------------------
389.855143

SQL> select months_between(sysdate,date'2001-01-01') fromdual;

MONTHS_BETWEEN(SYSDATE,DATE'2001-01-01')
----------------------------------------
34.4035409

SQL>

9、next_day()给定一个日期值,返回由第二个参数指出的日子第一次出现在的日期值(应返回相应日子的名称字符串)

oracle日期函数

关键词oracle日期函数

Oracle在日期使用上允许极大的灵活性。由于可以在日期字段存储时间和日期,从而有函数可以既引用日期又引用时间。
Oracle 所提供的一些日期函数如下所示。
1. SYSDATE
返回当前的日期和时间。
示例
SELECT sysdate FROM dual;

SYSDATE
----------
05-3月 -03

2. ADD_MONTHS(d, no_of_month)
当前日期"m"后推"no_of_month"个月。参数"no_of_month"可为任何整数。
示例
SELECT add_months(sysdate,2) FROM dual;

ADD_MONTHS
----------
05-5月 -03

SELECT add_months(sysdate,-2) FROM dual;

ADD_MONTHS
----------
05-1月 -03

3. LAST_DAY(month_day)
返回变量"month_day"中所指定月份的最后一天的日期。
示例
SELECT last_day(sysdate) FROM dual;

LAST_DAY(S
----------
31-3月 -03

4. MONTHS_BETWEEN(d1, d2)
返回日期 d1 和 d2 之间的月份数。如果 d1 晚于d2,结果为正,否则返回负数。
示例
SELECT months_between(sysdate,to_date('20030101','YYYYMMDD')) FROMdual;

MONTHS_BETWEEN(SYSDATE,TO_DATE('20030101','YYYYMMDD'))
------------------------------------------------------
2.15773932

5. NEXT_DAY(d, day_of_week)
返回由"day_of_week"命名的,在变量"d"指定的日期之后的第一个工作日的日期。参数"day_of_week"必须为该星期中的某一天。
示例
-- 2003.3.2 是星期日
SELECT next_day(to_date('20030226','YYYYMMDD'),1) FROM dual;

NEXT_DAY(T
----------
02-3月 -03

日期格式
格式元素说明
AD 或A.D.带有或不带有句号的 AD 标记
BC 或B.C.带有或不带有句号的 BC 标记
D一周中的天 (1-7)
DAY天的名称 (Sunday - Saturday)
DD一月中的天 (1 - 31)
DDD一年中的天 (1 - 366)
DY天的缩写 (Sun - Sat)
HH一天中的小时 (1 - 12)
HH24一天中的小时 (0 - 23)
MI分钟 (0-59)
MM月 (01-12)
MON月名称的缩写
MONTH月的名称
SS秒 (0-59)
YYYY4 个数字表示的年

分享到:
评论

相关推荐

    oracle日期函数

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

    ORACLE日期时间函数大全

    ORACLE 日期时间函数大全是一个功能强大且实用的函数集,提供了多种日期和时间处理函数,可以满足不同应用场景下的日期和时间处理需求。下面是 ORACLE 日期时间函数大全的详细介绍: 一、日期和时间格式 ORACLE ...

    oracle日期处理全集

    以下是对给定文件中提及的Oracle日期处理函数的详细说明: 1. **add_months(d, n)**: 此函数将日期d加上n个月,返回新的日期。例如,`add_months(SYSDATE,1)`会返回当前日期往后一个月的日期。 2. **last_day(d)**...

    oracle分析函数.doc

    综上所述,Oracle分析函数为开发者提供了强大的数据分析能力,它们在处理大数据集时,尤其在需要保持数据原有顺序或分组进行聚合计算的情况下,表现尤为出色。通过熟练掌握这些函数,可以大大提高SQL查询的灵活性和...

    oracle 内置函数大全

    Oracle内置函数是其强大功能的关键组成部分,这些函数极大地丰富了SQL语言的表达能力,使得数据处理和查询更为便捷高效。以下是对Oracle内置函数的详细概述: 1. **数学函数**: - `ABS(x)`:返回x的绝对值。 - `...

    oracle最常用的函数或方法总结

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,其丰富的函数和方法库为SQL查询提供了强大的支持。在日常的数据操作和分析中,掌握一些常用的Oracle函数和方法是至关重要的。以下是对"Oracle最常用的...

    ORACLE SQL函数集

    ### Oracle SQL 函数集详解 #### 一、概述 Oracle SQL 函数是数据库查询语言中的重要组成部分,用于处理数据并返回结果。这些函数可以按类别分为字符串处理函数、数值处理函数、日期处理函数等。本文将详细介绍...

    Oracle常用函数及实例.pdf

    总的来说,Oracle的函数集强大而全面,能够满足各种数据处理需求。熟练掌握这些函数的使用,对于开发人员来说是提高工作效率的关键。在日常的数据库管理和维护中,理解并灵活运用这些函数,不仅能优化查询性能,还能...

    Oracle分析函数教程

    数据窗口定义了函数作用的行集范围,可以基于排序、分组或者特定的行数或范围来定义。例如: 1. `OVER (ORDER BY salary)`:按照薪资进行排序并进行累计。 2. `OVER (PARTITION BY deptno)`:按照部门进行分区,对...

    oracle函数大全中文

    日期函数在处理时间序列数据时非常关键,如`SYSDATE`获取当前系统日期,`ADD_MONTHS`增加或减少月份,`EXTRACT`提取日期部分,`TO_DATE`和`TO_CHAR`进行日期与字符串之间的转换,还有`NEXT_DAY`找到下一个特定星期的...

    oracle函数分类.rar

    接下来,**日期函数**对于处理时间数据至关重要。`SYSDATE`返回当前系统日期和时间,`ADD_MONTHS`可以增加或减少指定月份,`EXTRACT`用于提取日期或时间的特定部分(如年、月、日、小时等),而`TO_DATE`和`TO_CHAR`...

    oracle常用函数 CHM

    Oracle数据库是世界上最广泛使用的数据库系统之一,其强大的功能和丰富的内置函数是其核心优势之一。本文将基于"Oracle常用函数 CHM"这个资源,详细解析一些Oracle数据库中常见的函数及其应用,帮助你更好地理解和...

    ORACLE分析函数.pdf

    Oracle分析函数是数据库管理系统Oracle中的一种高级SQL特性,它允许用户在单个查询中对一组行进行计算,而无需使用子查询或自连接。这些函数极大地增强了数据分析和报告的能力,提高了查询性能。以下是对Oracle分析...

    oracle系统内置函数大全

    Oracle数据库系统内置了大量函数,这些函数可以分为多个类别,例如字符函数、数字函数、日期函数、转换函数、分组函数以及其他辅助函数等。以下是对每个类别中一些常用函数的详细介绍: 字符函数 1. ASCII函数:...

    oracle常用函数全集

    根据提供的Oracle相关知识点,我们可以详细地探讨一下这些重要的Oracle函数及其用法,这对于数据库管理和查询都是非常有帮助的。 ### 1. CASE 表达式 CASE 表达式是一种非常有用的工具,它允许我们在SQL查询中进行...

    Oracle常用函数.pdf

    单行函数主要包括日期函数、字符函数、数字函数、转换函数以及其他一些特定用途的函数。 ##### 2.1 字符函数 字符函数用于对字符串进行各种操作,如大小写转换、截取、替换等。以下是一些常用的字符函数及其示例:...

    Oracle实用函数大全

    综上所述,Oracle数据库中的实用函数覆盖了日期时间处理、字符串操作、数据类型转换和数学运算等多个方面,为开发者提供了强大的工具箱,极大地提升了数据处理的效率和灵活性。掌握这些函数的使用方法,对于提升个人...

    oracle分析函数参考手册

    ### Oracle分析函数详解 #### 一、概述 Oracle分析函数是一种强大的工具,它允许用户对分组数据执行复杂的计算,并且能够返回多个结果行。这与传统的聚合函数(如`SUM`、`COUNT`等)形成鲜明对比,后者通常只针对...

    Oracle函数大全-详细介绍.rar

    Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的函数集,以支持复杂的查询和数据处理。在"Oracle函数大全-详细介绍.rar"这个压缩包中,包含了对Oracle数据库中各种函数的详细解析,包括分析函数、...

    oracle函数大全中文api文档

    Oracle提供了处理日期和时间的大量函数,如SYSDATE获取当前系统日期,ADD_MONTHS用于添加月份,EXTRACT用于提取日期或时间部分,TO_CHAR和TO_DATE用于日期和字符串之间的转换。 2. **数学与数值函数**: 包括ABS...

Global site tag (gtag.js) - Google Analytics