`

Oracle开发--日期截取及四舍五入

阅读更多

一、Oracle中的Round和Trunc:

如同对数字进行四舍五入和按位截取一样,Oracle对时间日期也提供了这两种功能。但比起对数字进行四舍五入和截取比较复杂:这是因为时间日期是有格式的。下面看看这两个函数的定义和用途:

ROUND(date [, format])

TRUNC(date [, format])

Round函数对日期进行“四舍五入”,Trunc函数对日期进行截取。如果我们不指定格式的话,Round会返回一个最接近date参数的日期,而Trunc函数只会简单的截取时分秒部分,返回年月日部分。

二、Round和Trunc函数示例:

SQL >   select  to_char(sysdate,  ' yyyy-mm-dd hh24:mi:ss ' ) now_date,
  
2              to_char( Round (sysdate), ' yyyy-mm-dd hh24:mi:ss ' ) round_date,
  
3              to_char(Trunc(sysdate), ' yyyy-mm-dd hh24:mi:ss ' ) trunc_date
  
4      from  dual;

NOW_DATE                               ROUND_DATE                             TRUNC_DATE
-- ------------------------------------ -------------------------------------- ----------------------
2008 - 06 - 30   14 : 52 : 13                      2008 - 07 - 01   00 : 00 : 00                      2008 - 06 - 30   00 : 00 : 00

这是一个典型的例子,由于我们没有指定round和trunc函数的格式,所以Oracle默认采用了按日期时间的格式,该例子中当前的时间是下午 14:52分,已经超过了12:00 AM这个中界线,所以Round返回07-01日而非06-30日。而Trunc不管三七二十一直接截取前面日期部分返回。

另外一个值得注意的地方是这两个函数返回的时分秒都是00:00:00,即一天的开始时间(对于12小时制的返回的是12:00:00 AM)。

三、指定格式的Round和Trunc函数示例:

如果我们对Round函数和Trunc函数指定了格式,事情就变得有点复杂了,不过核心思想还是不变:Round是四舍五入,Trunc是截取。举个例子 来说,假如我们以年为格式,则现在Oracle的判断是基于年来判断,超过一年的一半(即6月30日),Round函数则返回下一年了,Trunc函数依 然返回当前年。
SQL >   select  sysdate "Now date",
  
2              Round (sysdate,  ' yyyy ' ) Round_year,
  
3              Trunc(sysdate,  ' yyyy ' ) Trunc_year
  
4      from  dual;

Now date   ROUND_YEAR TRUNC_YEAR
-- -------- ---------- ----------
30 - 6月  - 08   01 - 1月  - 08   01 - 1月  - 08

关于这两个函数可用的格式非常多,但日常应用中用得比较多的基本上就这几个,以Round函数为例:
select   Round (sysdate,  ' Q ' ) Rnd_Q,
        
Round (sysdate,  ' Month ' ) Rnd_Month,
        
Round (sysdate,  ' WW ' ) Rnd_Week,
        
Round (sysdate,  ' W ' ) Rnd_Week_again,
        
Round (sysdate,  ' DDD ' ) Rnd_day,
        
Round (sysdate,  ' DD ' ) Rnd_day_again,
        
Round (sysdate,  ' DAY ' ) Rnd_day_of_week,
        
Round (sysdate,  ' D ' ) Rnd_day_of_week_again,
        
Round (sysdate,  ' HH12 ' ) Rnd_hour_12,
        
Round (sysdate,  ' HH24 ' ) Rnd_hour_24,
        
Round (sysdate,  ' MI ' ) Rnd_minute
  
from  dual

原文地址:http://www.blogjava.net/pengpenglin/archive/2008/06/30/211657.html

分享到:
评论

相关推荐

    传智播客Oracle.rar

    压缩包中的练习题文件(如Oracle开发--日期截取及四舍五入.doc等)是检验学习效果和提升实践能力的关键。这些文档可能包含了关于日期函数的使用,例如DATEPART、EXTRACT或TO_CHAR等,用于提取日期中的年、月、日等...

    Oracle PL-SQL 对应 hadoop hive 、 phoenix中常用的对应函

    Oracle PL-SQL 与 Hadoop Hive 和 Phoenix 是两种不同的数据处理和存储系统,它们各自拥有...hive、oracle、phoenix常用函数对照表.xlsx),可以更直观地找到各个系统的等价函数,从而提高开发效率和数据处理的兼容性。

    Oracle----相关常用命令

    `**:四舍五入数字789.536到小数点后两位。 - **`select round(789.536,-1) from dual;`**:四舍五入数字789.536到十位数。 - **`select trunc(789.536) from dual;`**:截断数字789.536,移除小数部分。 - **`...

    oracle日期处理全集

    例如,`round(sysdate)`将当前日期四舍五入到最近的整天,而`round(sysdate+1/6)`则会将当前日期加上1/6天后进行四舍五入。 除了这些函数,Oracle还提供了其他如trunc()(截取日期到指定部分,如年、月、日等)、...

    Oracle日期时间类型

    以上步骤演示了如何在Oracle数据库中使用`date`类型,并介绍了其内部存储结构和如何进行日期截取。这些知识对于开发人员和DBA来说都是非常实用的,能够帮助他们更高效地管理和查询日期时间数据。

    ORACLE常用日期函数集合

    ### ORACLE常用日期函数...以上介绍的Oracle日期函数是数据库开发和管理中非常实用的一部分,通过灵活地运用这些函数,可以有效地解决各种与日期相关的数据处理问题。希望本文能够帮助读者更好地掌握和应用这些函数。

    oracle常见函数整理

    7. 四舍五入:ROUND()函数对日期进行四舍五入,例如ROUND(SYSDATE,'MONTH')将当前日期四舍五入到月,ROUND(SYSDATE,'YEAR')将当前日期四舍五入到年。 8. 截断:TRUNC()函数对日期进行截断,例如TRUNC(SYSDATE,'MONTH...

    Oracle数据库开发之函数概述

    四舍五入函数ROUND(n[,m])允许我们根据指定的小数位数对数值进行四舍五入。其中,n是要四舍五入的数值,m则是保留的小数位数。如果m为正数,则保留小数点后m位;如果m为负数,则保留小数点前m位;若省略m,则默认为0...

    oracle-database-programming.rar_oracle_oracle函数

    在实际开发中,可以借助Oracle提供的在线文档(如`Oracle Database SQL Reference`)和各种教程资源来深入学习这些函数。同时,实践是提升技能的最好方式,尝试在实际项目中应用这些函数,不断解决问题,从而达到...

    oracle与mysql对比

    ### Oracle与MySQL对比 在数据库管理系统领域,Oracle与MySQL都是极具影响力的选择,分别代表了企业级数据库和开源数据库的不同特点。下面将从安装目录、管理工具、客户端工具、基本操作命令等方面进行详细的对比...

    Mysql Oracle 数据库开发设计及使用规范

    ### MySQL Oracle 数据库开发设计及使用规范 #### 设计规范 **1. 数据设计原则** - **遵循3NF规范:** - 表中的每个值只能出现一次。 - 每一行都应通过唯一的键来标识。 - 表内不应包含依赖于其他键的非键信息...

    Oracle与Sql-Server函数对照.docx

    - 作用:根据指定精度对日期进行四舍五入。 #### 四、数学函数对照 1. **平均值** - **Oracle** & **SQL Server**: `AVG` - 作用:计算数值列的平均值。 2. **计数** - **Oracle** & **SQL Server**: `COUNT`...

    oracle内部日期查询.pdf

    例如,`ADD_MONTHS`函数用于给日期增加指定的月数,`LAST_DAY`得到一个月的最后一天,`MONTHS_BETWEEN`计算两个日期之间的月数差,`NEW_TIME`转换时区,`NEXT_DAY`找到下一个特定的星期几,`ROUND`四舍五入日期时间...

    oracle常用工具函数--多年经验总结及示例演示

    1. **ROUND()**:四舍五入数字到指定的小数位数。 2. **TRUNC()**:截断数字到指定的小数位数。 3. **MOD()**:计算两个数相除的余数。 4. **AVG()**、**SUM()**、**COUNT()**、**MAX()** 和 **MIN()**:聚合函数...

    ORACLE常用函数功能演示

    - **日期舍入和截取**:ROUND和TRUNC函数可以按照指定的日期格式对日期进行四舍五入或截取。 **4. 类型转换函数** 类型转换函数用于在数值和字符之间转换数据类型,例如将数值转换成字符串或反之。 **总结** ...

    oracle 讲义

    - `round()`四舍五入,`to_char()`格式化数值,如货币格式。 - `to_date()`和`to_char()`用于日期和时间的转换。 9. **其他功能**: - 转义字符用于特殊字符处理,如`\%`用于在`like`中匹配百分号。 - `escape`...

    尚学堂视频笔记-oracle

    - **数值函数**:`round()`用于四舍五入,`chr()`和`ascii()`分别用于获取字符对应的ASCII码或相反操作。 - **日期函数**:`to_char()`用于格式化日期,例如`select to_char(birthdate, 'YYYY-MM-DD HH:MI:SS') from...

    Oracle与Informix函数比较.doc

    1. 四舍五入:Informix 中的 round 函数可以用来四舍五入,而 Oracle 中的 round 函数可以实现相同的功能。 四、操作符 Oracle 和 Informix 都提供了操作符来比较数据。这些操作符可以用来判断两个值是否相等、...

    Oracle常用函数.pdf

    - **ROUND/TRUNC**: 对日期进行四舍五入或截断。 - 示例:`ROUND(to_date('13-2月-03'),'YEAR')` 返回 `01-1月-03` - 示例:`TRUNC(to_date('06-2月-03'),'MONTH')` 返回 `01-2月-03` #### 三、多行函数 多行...

    oracle数据库应用与开发讲义

    - **数字函数**:用于数值计算,如取整、取余、四舍五入等。 - **日期函数**:用于日期时间的计算和格式化。 - **转换函数**:用于数据类型之间的转换。 #### 专题四:数据库对象 ##### 教学目标 1. **理解同义...

Global site tag (gtag.js) - Google Analytics