ORACLEROUND(oracle的round函数用法)
一、Oracle round函数是什么意思怎么运用
Oracle
Round
函数指:传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果。
用法:
SELECT
ROUND(
number,
[
decimal_places
]
)
FROM
DUAL
参数:
number
:
欲处理之数值
decimal_places
:
四舍五入
,
小数取几位
(
预设为
0
)
具体案例:
a、SELECT
Round(160/3,3)
FROM
dual;
-----结果
53.33
b、SELECT
Round(160/3,1)
FROM
dual;
-----结果
53.3
c、SELECT
Round(160/3,0)
FROM
dual;
-----结果
53
d、SELECT
Round(160/3,-1)
FROM
dual;
-----结果
50
e、SELECT
Round(160/3,-2)
FROM
dual;
-----结果
100
扩展资料
关于trunc
和round函数比较
整体概括:
round函数指四舍五入。
trunc函数指直接截取。
对于时间:Round函数对日期进行“四舍五入”,Trunc函数对日期进行截取。如果我们不指定格式的话,Round会返回一个最接近date参数的日期,而Trunc函数只会简单的截取时分秒部分,返回年月日部分。
对于数字:Round函数对数字同样进行“四舍五入”,Trunc函数截取时不进行四舍五入,可以指明保留小数点后面的位数。
参考资料来源:搜狗百科—round
(函数)
二、oracle round日期函数 天数如何四舍五入
首先你的例子数据错了,不是21号,应该是24号。这样就没问题了。
看你列出的数据,应该是格式由小到大,逐步四舍五入的一个过程。
这个算法如下:
round(带小时分秒日期,格式)
格式是秒SS,精确到秒。
分MI,到分,秒数30是分界线,相当于四舍五入的5,如果秒超过30,向前进1
时HH,如果分超过30,向前进1
日DD,如果小时超过12,向前进1
月MM,16号是临界,相当于四舍五入的5,如果超过16号,向前进1
年YY,超过7月,向前进1
对应的语句分别是
select to_date('1999-11-24 10:31:11','yyyy-mm-dd hh24:mi:ss') from dual;
select round(to_date('1999-11-24 10:31:11','yyyy-mm-dd hh24:mi:ss'),'mi') from dual;
select round(to_date('1999-11-24 10:31:11','yyyy-mm-dd hh24:mi:ss'),'hh') from dual;
select round(to_date('1999-11-24 10:31:11','yyyy-mm-dd hh24:mi:ss'),'dd') from dual;
select round(to_date('1999-11-24 10:31:11','yyyy-mm-dd hh24:mi:ss'),'mm') from dual;
select round(to_date('1999-11-24 10:31:11','yyyy-mm-dd hh24:mi:ss'),'yy') from dual;
三、关于Oracle中to_date的用法
一、在使用Oracle的to_date函数来做日期转换时,很多Java程序员也许会直接的采用“yyyy-MM-dd HH:mm:ss”的格式作为格式进行转换,但是在Oracle中会引起错误:“ORA 01810格式代码出现两次”。
select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mm:ss') from dual;
如:
原因是SQL中不区分大小写,MM和mm被认为是相同的格式代码,所以Oracle的SQL采用了mi代替分钟。
select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual;
二、另要以24小时的形式显示出来要用HH24
select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;//mi是分钟
select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual;//mm会显示月份 oracle中的to_date参数含义
1.日期格式参数含义说明
D一周中的星期几
DAY天的名字,使用空格填充到9个字符
DD月中的第几天
DDD年中的第几天
DY天的简写名
IW ISO标准的年中的第几周
IYYY ISO标准的四位年份
YYYY四位年份
YYY,YY,Y年份的最后三位,两位,一位
HH小时,按12小时计
HH24小时,按24小时计
MI分
SS秒
MM月
Mon月份的简写
Month月份的全名
W该月的第几个星期
WW年中的第几个星期 1.日期时间间隔操作
当前时间减去7分钟的时间
select sysdate,sysdate- interval’7’ MINUTE from dual
当前时间减去7小时的时间
select sysdate- interval’7’ hour from dual
当前时间减去7天的时间
select sysdate- interval’7’ day from dual
当前时间减去7月的时间
select sysdate,sysdate- interval’7’ month from dual
当前时间减去7年的时间
select sysdate,sysdate- interval’7’ year from dual
时间间隔乘以一个数字
select sysdate,sysdate- 8*interval’2’ hour from dual
2.日期到字符操作
select sysdate,to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) from dual select sysdate,to_char(sysdate,’yyyy-mm-dd hh:mi:ss’) from dual select sysdate,to_char(sysdate,’yyyy-ddd hh:mi:ss’) from dual select sysdate,to_char(sysdate,’yyyy-mm iw-d hh:mi:ss’) from dual
参考oracle的相关关文档(ORACLE901DOC/SERVER.901/A90125/SQL_ELEMENTS4.HTM#48515)
3.字符到日期操作
select to_date(’2003-10-17 21:15:37’,’yyyy-mm-dd hh24:mi:ss’) from dual
具体用法和上面的to_char差不多。
4. trunk/ ROUND函数的使用
select trunc(sysdate,’YEAR’) from dual select trunc(sysdate) from dual select to_char(trunc(sysdate,’YYYY’),’YYYY’) from dual
5.oracle有毫秒级的数据类型
--返回当前时间年月日小时分秒毫秒
select to_char(current_timestamp(5),’DD-MON-YYYY HH24:MI:SSxFF’) from dual;
--返回当前时间的秒毫秒,可以指定秒后面的精度(最大=9)
select to_char(current_timestamp(9),’MI:SSxFF’) from dual;
6.计算程序运行的时间(ms)
declare
type rc is ref cursor;
l_rc rc;
l_dummy all_objects.object_name%type;
l_start number default dbms_utility.get_time;
begin
for I in 1.. 1000
loop
open l_rc for
’select object_name from all_objects’||
’where object_id=’|| i;
fetch l_rc into l_dummy;
close l_rc;
end loop;
dbms_output.put_line(round((dbms_utility.get_time-l_start)/100, 2)||’ seconds...’);
end;