一、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开发--日期截取及四舍五入.doc等)是检验学习效果和提升实践能力的关键。这些文档可能包含了关于日期函数的使用,例如DATEPART、EXTRACT或TO_CHAR等,用于提取日期中的年、月、日等...
Oracle PL-SQL 与 Hadoop Hive 和 Phoenix 是两种不同的数据处理和存储系统,它们各自拥有...hive、oracle、phoenix常用函数对照表.xlsx),可以更直观地找到各个系统的等价函数,从而提高开发效率和数据处理的兼容性。
`**:四舍五入数字789.536到小数点后两位。 - **`select round(789.536,-1) from dual;`**:四舍五入数字789.536到十位数。 - **`select trunc(789.536) from dual;`**:截断数字789.536,移除小数部分。 - **`...
例如,`round(sysdate)`将当前日期四舍五入到最近的整天,而`round(sysdate+1/6)`则会将当前日期加上1/6天后进行四舍五入。 除了这些函数,Oracle还提供了其他如trunc()(截取日期到指定部分,如年、月、日等)、...
以上步骤演示了如何在Oracle数据库中使用`date`类型,并介绍了其内部存储结构和如何进行日期截取。这些知识对于开发人员和DBA来说都是非常实用的,能够帮助他们更高效地管理和查询日期时间数据。
### ORACLE常用日期函数...以上介绍的Oracle日期函数是数据库开发和管理中非常实用的一部分,通过灵活地运用这些函数,可以有效地解决各种与日期相关的数据处理问题。希望本文能够帮助读者更好地掌握和应用这些函数。
7. 四舍五入:ROUND()函数对日期进行四舍五入,例如ROUND(SYSDATE,'MONTH')将当前日期四舍五入到月,ROUND(SYSDATE,'YEAR')将当前日期四舍五入到年。 8. 截断:TRUNC()函数对日期进行截断,例如TRUNC(SYSDATE,'MONTH...
四舍五入函数ROUND(n[,m])允许我们根据指定的小数位数对数值进行四舍五入。其中,n是要四舍五入的数值,m则是保留的小数位数。如果m为正数,则保留小数点后m位;如果m为负数,则保留小数点前m位;若省略m,则默认为0...
在实际开发中,可以借助Oracle提供的在线文档(如`Oracle Database SQL Reference`)和各种教程资源来深入学习这些函数。同时,实践是提升技能的最好方式,尝试在实际项目中应用这些函数,不断解决问题,从而达到...
### Oracle与MySQL对比 在数据库管理系统领域,Oracle与MySQL都是极具影响力的选择,分别代表了企业级数据库和开源数据库的不同特点。下面将从安装目录、管理工具、客户端工具、基本操作命令等方面进行详细的对比...
### MySQL Oracle 数据库开发设计及使用规范 #### 设计规范 **1. 数据设计原则** - **遵循3NF规范:** - 表中的每个值只能出现一次。 - 每一行都应通过唯一的键来标识。 - 表内不应包含依赖于其他键的非键信息...
- 作用:根据指定精度对日期进行四舍五入。 #### 四、数学函数对照 1. **平均值** - **Oracle** & **SQL Server**: `AVG` - 作用:计算数值列的平均值。 2. **计数** - **Oracle** & **SQL Server**: `COUNT`...
例如,`ADD_MONTHS`函数用于给日期增加指定的月数,`LAST_DAY`得到一个月的最后一天,`MONTHS_BETWEEN`计算两个日期之间的月数差,`NEW_TIME`转换时区,`NEXT_DAY`找到下一个特定的星期几,`ROUND`四舍五入日期时间...
1. **ROUND()**:四舍五入数字到指定的小数位数。 2. **TRUNC()**:截断数字到指定的小数位数。 3. **MOD()**:计算两个数相除的余数。 4. **AVG()**、**SUM()**、**COUNT()**、**MAX()** 和 **MIN()**:聚合函数...
- **日期舍入和截取**:ROUND和TRUNC函数可以按照指定的日期格式对日期进行四舍五入或截取。 **4. 类型转换函数** 类型转换函数用于在数值和字符之间转换数据类型,例如将数值转换成字符串或反之。 **总结** ...
- `round()`四舍五入,`to_char()`格式化数值,如货币格式。 - `to_date()`和`to_char()`用于日期和时间的转换。 9. **其他功能**: - 转义字符用于特殊字符处理,如`\%`用于在`like`中匹配百分号。 - `escape`...
- **数值函数**:`round()`用于四舍五入,`chr()`和`ascii()`分别用于获取字符对应的ASCII码或相反操作。 - **日期函数**:`to_char()`用于格式化日期,例如`select to_char(birthdate, 'YYYY-MM-DD HH:MI:SS') from...
1. 四舍五入:Informix 中的 round 函数可以用来四舍五入,而 Oracle 中的 round 函数可以实现相同的功能。 四、操作符 Oracle 和 Informix 都提供了操作符来比较数据。这些操作符可以用来判断两个值是否相等、...
- **ROUND/TRUNC**: 对日期进行四舍五入或截断。 - 示例:`ROUND(to_date('13-2月-03'),'YEAR')` 返回 `01-1月-03` - 示例:`TRUNC(to_date('06-2月-03'),'MONTH')` 返回 `01-2月-03` #### 三、多行函数 多行...
- **数字函数**:用于数值计算,如取整、取余、四舍五入等。 - **日期函数**:用于日期时间的计算和格式化。 - **转换函数**:用于数据类型之间的转换。 #### 专题四:数据库对象 ##### 教学目标 1. **理解同义...