`
lizhiyu211
  • 浏览: 233395 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多
  1. trunc()函数;
  2. round()函数;
  3. EXTRACT()函数;
  4. to_char()函数;
  5. interval 间隔计算;

 

-- 获取时间

 

 

select sysdate "sysdate" from dual;
sysdate
-------------------------
2013/8/5 10:20:14

 

 

 

-- 日期精确到 年 月 日 时 分 秒 季度 世纪

-- trunc() & round() 这两个函数经常被使用在数值处理中,日期类型中同样适用。

TRUNC(date [, fmt ])
ROUND(date [, fmt ])

fmt列表如下:

 

Table 5-14 lists the format models you can use with the ROUND and TRUNC date functions and the units to which they round and truncate dates. The default model, 'DD', returns the date rounded or truncated to the day with a time of midnight.

Table 5-14 Date Format Models for the ROUND and TRUNC Date Functions

Format Model Rounding or Truncating Unit
CC
SCC

One greater than the first two digits of a four-digit year

SYYYY
YYYY
YEAR
SYEAR
YYY
YY
Y

Year (rounds up on July 1)

IYYY
IY
IY
I

ISO Year

Q

Quarter (rounds up on the sixteenth day of the second month of the quarter)

MONTH
MON
MM
RM

Month (rounds up on the sixteenth day)

WW

Same day of the week as the first day of the year

IW

Same day of the week as the first day of the ISO year

W

Same day of the week as the first day of the month

DDD
DD
J

Day

DAY
DY
D

Starting day of the week

HH
HH12
HH24

Hour

MI

Minute

 

 

--************************************************************************************************************

-- 提取当前日期中的 年 月 日 时 分 秒 当前年中第几周 当前日期是周几 等 可使用 to_char()  和 EXTRACT()

语法:

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

例句:

The following example returns from the oe.orders table the number of orders placed in each month:

SELECT EXTRACT(month FROM order_date) "Month",
  COUNT(order_date) "No. of Orders"
  FROM orders
  GROUP BY EXTRACT(month FROM order_date)
  ORDER BY "No. of Orders" DESC;

     Month No. of Orders
---------- -------------
        11            15
         7            14
         6            14
         3            11
         5            10
         9             9
         2             9
         8             7
        10             6
         1             5
        12             4
         4             1
 
12 rows selected.

The following example returns the year 1998.

SELECT EXTRACT(YEAR FROM DATE '1998-03-07') FROM DUAL;

EXTRACT(YEARFROMDATE'1998-03-07')
---------------------------------
                             1998

The following example selects from the sample table hr.employees all employees who were hired after 1998:

SELECT last_name, employee_id, hire_date
   FROM employees
   WHERE EXTRACT(YEAR FROM
   TO_DATE(hire_date, 'DD-MON-RR')) > 1998
   ORDER BY hire_date;


LAST_NAME                 EMPLOYEE_ID HIRE_DATE
------------------------- ----------- ---------
Landry                            127 14-JAN-99
Lorentz                           107 07-FEB-99
Cabrio                            187 07-FEB-99
. . .

The following example results in ambiguity, so Oracle returns UNKNOWN:

SELECT EXTRACT(TIMEZONE_REGION 
      FROM TIMESTAMP '1999-01-01 10:00:00 -08:00')
   FROM DUAL;

EXTRACT(TIMEZONE_REGIONFROMTIMESTAMP'1999-01-0110:00:00-08:00')
----------------------------------------------------------------
UNKNOWN

 

-- to_char() 函数处理日期 

语法:

TO_CHAR({ datetime | interval } [, fmt [, 'nlsparam' ] ])

interval这种参数不常使用这里就不做讨论了,如有需要可以参见官方文档的例子。

 

SQL> select to_char(sysdate,'yyyy-mm-dd:hh24:mi:ss:pm:dy') from dual; 
TO_CHAR(SYSDATE,'YYYY-MM-DD:HH
---------------------------------------
2013-08-05:11:05:38:上午:星期一

 

 

下面是一些常用的例子:

fmt = 'yyyy' -- 显示datetime的当前年 4位字符
fmt = 'yyy'  -- 显示datetime的当前年 后三位字符
fmt = 'yy'   -- 显示datetime的当前年 后两位字符
fmt = 'y'    -- 显示datetime的当前年 最后一位字符
fmt = 'Q'    -- 显示datetiem所在季度
fmt = 'mm'   -- 显示datetime的当前月份
fmt = 'IW'   -- 显示datetime的周 (按日历上的那种每年有52或53周 例如20130107为日历上2013年的第二周)
fmt = 'WW'   -- 显示datetime为本年中第几个星期/七天(本年1月1号至1月7号为本年第一个星期 非日历上的正常周)
fmt = 'W'    -- 显示datetime为本月中第几个星期/七天(1号到7号为第一个星期 或者说是第一个七天)
fmt = 'ddd'  -- 显示datetime的当前日期在本年中的第几天
fmt = 'dd'   -- 显示datetime的当前日期中的天
fmt = 'd'    -- 显示datetime是当前周的第几天 (周日为第一天)
fmt = 'hh'   -- 显示datetime小时 12小时制
fmt = 'hh24' -- 显示datetime小时 24小时制 
fmt = 'mi'   -- 显示datetime分钟
fmt = 'ss'   -- 显示datetime秒

 

IW与WW 区别 可见             http://www.360doc.com/content/13/0805/11/764260_304857194.shtml

 

例句

select to_char(sysdate,'yyyy') from dual;
TO_CHAR(SYSDATE,'YYYY')
-----------------------
2013

   

SQL> select to_char(sysdate,'yy') from dual;
TO_CHAR(SYSDATE,'YY')
---------------------
13

   

----***********************************************************************************

-- 时间间隔计算

  
   
-- 当前时间减去5年的时间
   select   sysdate,sysdate - interval '5' year  from dual;
  当前时间减去5月的时间
   select   sysdate,sysdate - interval '5' month  from dual;
  当前时间减去5天的时间
   select   sysdate - interval '5' day  from dual;
-- 当前时间减去5小时的时间
   select   sysdate - interval '5' hour  from dual;
-- 当前时间减去5分钟的时间
   select   sysdate,sysdate - interval '5' MINUTE  from  dual;
-- 当前时间减去5秒时间
    select   sysdate,sysdate - interval '5' second  from dual;
-- 时间间隔乘以一个数字
   select   sysdate,sysdate - 4*interval '5' MINUTE  from dual

 -- 计算某月最后一天
 
-- 计算某月最后一天
select last_day(sysdate) from dual;
LAST_DAY(SYSDATE)
-----------------
2013/8/31 11:51:5
 
 
待续...... 欢迎补充

 

0
1
分享到:
评论

相关推荐

    ORACLE函数大全与整理

    "函数整理.doc"和"ORACLE函数大全.doc"这两个文档应该包含了Oracle函数的详细说明、示例和应用场景,是学习和查阅Oracle函数的宝贵资料。通过深入学习这些函数,开发者可以更高效地编写SQL查询,优化数据库操作,...

    oracle常见函数整理

    Oracle常见函数整理 Oracle提供了多种函数来处理日期、数字和字符类型的数据,以下是常见的Oracle函数整理: 日期函数: 1. 日期转字符型:to_char()函数将日期类型转换为字符类型,例如to_char(sysdate,'YYYY-MM...

    oracle 函数大全整理

    Oracle数据库系统中包含众多函数,这些函数用于处理和操作数据,以满足各种查询和分析需求。在本篇文章中,我们将重点讨论NVL函数及其在分组查询中的应用。 NVL函数是Oracle数据库中的一个非常实用的函数,其主要...

    Oracle110个常用函数……PDF清晰版

    本资料是基于网络资源整理而成的Oracle数据库110个常用函数汇总,旨在帮助读者更好地理解和掌握这些函数的应用场景和技术细节。这些函数不仅适用于求职面试准备,也是实际开发工作中不可或缺的一部分。 ### Oracle...

    Oracle内置SQL函数-分类整理大全

    Oracle的日期时间函数包括SYSDATE获取当前系统日期,ADD_MONTHS添加月份,EXTRACT提取日期部分(如年、月、日),TO_CHAR和TO_DATE用于日期和字符串之间的转换。例如,TO_CHAR(SYSDATE, 'YYYY-MM-DD')将返回当前日期...

    Oracle内置SQL函数-分类整理大全

    Oracle内置SQL函数是数据库查询和操作中不可或缺的一部分,它们极大地丰富了SQL语言的功能,使得数据处理更加灵活高效。以下是对这些函数的详细分类和解释: **F.1 字符函数——返回字符值** 这类函数主要用于处理...

    Oracle_常用函数整理

    日期和时间函数用于处理日期和时间相关的数据。 - **SYSDATE**:返回系统当前日期和时间。 - **ADD_MONTHS(d, no_of_month)**:为日期`d`加上`no_of_month`个月份。可以接受任何整数作为月份参数。 - **LAST_DAY...

    Oracle实用教程_04章_Oracle数据类型和函数[整理].pdf

    Oracle 数据类型和函数 Oracle 数据类型是指一组性质相同的值的集合以及定义于这个值集合上的一组操作的总称。在 Oracle 数据库中,数据类型可以分为字符型、数值型、日期型和其它类型等几类。 Oracle 数据类型...

    Oracle内置SQL函数-分类整理大全.doc

    ### Oracle内置SQL函数-分类整理大全 #### F.1 字符函数——返回字符值 **1.1.1 CHR** - **语法**: `CHR(x)` - **功能**: 返回在数据库字符集中与`x`拥有等价数值的字符。`CHR`和`ASCII`是一对反函数,即经过`CHR...

    oracle培训资料(整理版)

    这份"Oracle培训资料(整理版)"包含了丰富的知识内容,特别是对于分析函数和Oracle内置函数的深入探讨,对于初学者和进阶者来说都是宝贵的学习资源。 一、Oracle分析函数 分析函数是Oracle数据库中的一种高级查询...

    SQLServer和Oracle的常用函数对比

    在SQLServer和Oracle数据库系统中,函数是进行数据操作和计算的重要工具。下面将详细对比这两者中的一些常用数学和比较函数。 1. **绝对值**: SQLServer使用`ABS()`函数,如`SELECT ABS(-1)`;Oracle同样使用`ABS...

    oracle内置函数

    这些内置函数在Oracle SQL中扮演着至关重要的角色,它们允许用户根据需要定制输出格式,进行复杂的数学计算,以及日期和时间的转换。理解并熟练运用这些函数,能极大提升数据库管理和数据分析的效率。在实际应用中,...

    oracle常用函数库

    2. **数值计算函数** - `ROUND()`:四舍五入到指定的小数位数。 - `TRUNC()`:截断数字到指定的小数位数。 - `MOD()`:返回两个数相除的余数。 - `ABS()`:返回数值的绝对值。 - `POWER()`:计算一个数的幂。 ...

    oracle自学笔记-视频实例整理

    从给定的Oracle自学笔记和视频实例整理的内容中,我们可以提炼出一系列关于SQL查询和数据操作的重要知识点。以下是对这些知识点的详细解析: ### 1. 基本的SELECT语句 - **获取所有列**:`SELECT * FROM emp;` 这是...

    oracle语法大全 个人整理

    以下是一些关于Oracle语法和个人学习整理的关键知识点: 1. **初始口令**:Oracle安装完成后,预设了一些默认的系统用户及其口令,例如: - internal/oracle - sys/change_on_install - system/manager - scott...

    Oracle学习资料 自己整理的

    从给定的文件标题“Oracle学习资料 自己整理的”以及描述“从OCA到OCP内容,常用的命令和使用方法,技巧等”,我们可以提炼出一系列关于Oracle数据库管理与操作的关键知识点,涵盖从初级到高级的技能提升路径。...

    Oracle学习资料整理

    这份Oracle学习资料整理涵盖了Oracle的基础知识,包括命令、SQL语言、常用函数等多个方面,对于初学者或需要巩固基础知识的IT从业者来说是一份宝贵的资源。 首先,我们来看Oracle的相关命令。`sqlplus`是Oracle提供...

    自己整理的Oracle常用高级语句.rar

    这里提供的"Oracle常用高级语句.rar"压缩包包含了多个与Oracle数据库相关的文档,涵盖了PL/SQL编程、函数应用、控制流以及数据库管理等多个方面。下面将详细解析这些文件中的关键知识点。 1. **PLSQL美化**: PL/...

    Oracle 基础知识 -大全- 原创整理.pdf

    Oracle提供了大量的内置函数,如数学函数、字符串函数、日期时间函数等,用于数据处理和计算。 11. **表空间与数据字典** - **表空间**:存储数据库对象的地方,可以分配到不同的物理磁盘,提高I/O性能。 - **...

    Oracle面试题及答案整理.docx

    Oracle 面试题及答案整理 Oracle 是一种关系数据库管理系统(RDBMS),它使用 SQL 语言来管理和存储数据。以下是 Oracle 面试题及答案整理中的一些知识点: 1. 表:table1(FId,Fclass,Fscore),用最高效最简单的 ...

Global site tag (gtag.js) - Google Analytics