一、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
分享到:
相关推荐
四舍五入函数ROUND(n[,m])允许我们根据指定的小数位数对数值进行四舍五入。其中,n是要四舍五入的数值,m则是保留的小数位数。如果m为正数,则保留小数点后m位;如果m为负数,则保留小数点前m位;若省略m,则默认为0...
3. **数字函数**:`ROUND`用于四舍五入;`MOD`用于求余数。 4. **日期函数**:`SYSDATE`返回当前系统日期;`ADD_MONTHS`用于计算几个月后的日期。 ##### 3.10 转换函数 1. **隐式数据类型转换**:当数据类型不一致...
### ORACLE常用日期函数...以上介绍的Oracle日期函数是数据库开发和管理中非常实用的一部分,通过灵活地运用这些函数,可以有效地解决各种与日期相关的数据处理问题。希望本文能够帮助读者更好地掌握和应用这些函数。
- 数学函数:如SQRT()开平方,MOD()求模,ROUND()四舍五入等。 4. CASE表达式: CASE语句允许基于条件执行不同的计算或返回不同的值,分为简单CASE和搜索CASE两种形式。 5. 分组和聚合: GROUP BY语句用于将...
`ADD_MONTHS`函数用于给日期增加指定的月数,`LAST_DAY`得到一个月的最后一天,`MONTHS_BETWEEN`计算两个日期之间的月数差,`NEW_TIME`转换时区,`NEXT_DAY`找到下一个特定的星期几,`ROUND`四舍五入日期时间,...
* ROUND:四舍五入得到新的日期。 * SESSIONTIMEZONE:返回当前会话的时区。 * SYS_EXTRACT_UTC:从提供的datetime中以UTC返回时间。 * SYSTIMESTAMP:返回当前的日期和时间。 * TRUNC:截取日期。 * TZ_OFFSET:...
- `ROUND`:四舍五入。 - `TRUNC`:截断小数位。 - `MOD`:取模运算。 #### 三、数据库原理与结构 1. **文件存储**:早期数据管理方式之一,存在诸多局限性,如难以维护和扩展。 2. **数据库** (DB):按照数据...
- **SQL Server**: 使用 `ROUND` 函数来四舍五入数值到指定的小数位数。 - 示例:`SELECT ROUND(1.23456, 4) AS Value;` - **Oracle**: 同样使用 `ROUND` 函数。 - 示例:`SELECT ROUND(1.23456, 4) AS Value FROM...
`NEW_TIME`转换时区,`NEXT_DAY`找到下一个指定的工作日,`ROUND`对日期/时间值四舍五入,`SYSDATE`获取当前日期和时间,`TO_CHAR`和`TO_DATE`用于日期和字符串之间的转换,以及`TRUNC`用于截取日期/时间到指定元素...
- **日期舍入和截取**:ROUND和TRUNC函数可以按照指定的日期格式对日期进行四舍五入或截取。 **4. 类型转换函数** 类型转换函数用于在数值和字符之间转换数据类型,例如将数值转换成字符串或反之。 **总结** ...
Oracle数据库系统是世界上最广泛使用的数据库管理系统之一,尤其在企业级应用中占据主导地位。在处理时间数据时,Oracle提供了一系列的内置函数和类型,使得时间的转换和操作变得方便高效。"Oracle时间time转换器"是...
1. `round(n,[m])`:四舍五入,m为可选参数,用于指定保留的小数位数。 2. `trunc(n,[m])`:截取数字,m同样可选,用于决定截取到小数点的哪一位。 3. `mod(m,n)`:返回m除以n的余数。 4. `floor(n)`:返回小于或...
日期函数用于处理日期时间数据,支持多种日期格式的转换及计算。 - **MONTHS_BETWEEN**: 计算两个日期之间的月份差。 - 示例:`MONTHS_BETWEEN('04-11月-05','11-1月-01')` 返回 `57.7741935` - **ADD_MONTHS**: ...
- 作用:根据指定精度对日期进行四舍五入。 #### 四、数学函数对照 1. **平均值** - **Oracle** & **SQL Server**: `AVG` - 作用:计算数值列的平均值。 2. **计数** - **Oracle** & **SQL Server**: `COUNT`...
- `TRUNC`:截取,不会进行四舍五入 - `MOD`:取余数 4. **转换函数:** - `TO_DATE`:将字符型数据转换为日期类型 - `TO_CHAR`:将数字或日期类型转换为字符类型 - `TO_NUMBER`:将字符转换为数值类型 5. **...
4. **数学函数**:ROUND()四舍五入,CEIL()向上取整,FLOOR()向下取整,MOD()取模运算。 5. **转换函数**:TO_CHAR()将数据转换为字符串,TO_DATE()将字符串转换为日期,TO_NUMBER()将字符串转换为数字。 二、...
在Oracle数据库管理与开发过程中,熟练掌握日期时间处理的相关函数是至关重要的。这部分内容主要涉及到了Oracle中的日期函数及其应用,例如`sysdate`、`add_months`等。 ##### 1. `sysdate`函数 `sysdate`函数返回...
- `TRUNC`: 四舍五入到指定的小数位数。 - `CEIL`: 向上取整。 - `FLOOR`: 向下取整。 - `SIGN`: 返回数字的符号。 - `POWER`: 幂运算。 2. **随机数生成** - `RAND`: 生成随机数。 **示例代码**: ```sql ...
四舍五入 - **SQLServer**: `SELECT ROUND(1.23456, 4) AS Value;` 结果为 `1.2346` - **Oracle**: `SELECT ROUND(1.23456, 4) AS Value FROM DUAL;` 结果为 `1.2346` ##### 6. 自然对数底数 - **SQLServer**: `...
1. 数学函数:如`ROUND()`用于四舍五入,`SQRT()`用于求平方根,`MOD()`用于取模运算。 2. 日期时间函数:例如`SYSDATE`获取当前系统日期,`ADD_MONTHS()`增加月份,`EXTRACT()`提取日期部分。 3. 字符串函数:如`...