本文目录一览:
oracle中的ceil函数和floor函数的区别
Oracle中trunc函数、round 函数、ceil函数和floor函数的使用
1.1trunc函数处理数字
trunc函数返回清困处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。
其具体的语法格式如下
TRUNC(number[,decimals])
其中:
number 待做截取处理的数值
decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分。
selecttrunc(123.98)from dual;
selecttrunc(123.123,2)from dual;
selecttrunc(123.123,-1)from dual;
注意:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记。与取整类似,比如参数为1即取整到十分位,如果是-1,则是销正高取整到亏尺十位,以此类推;如果所设置的参数为负数,且负数的位数大于或等于整数的字节数的话,则返回为0。如:TRUNC(89.985,-3)=0。
1.2trunc函数处理日期
trunc函数返回以指定元元素格式截去一部分的日期值。
其具体的语法格式如下:
TRUNC(date,[fmt])
其中:
date为必要参数,是输入的一个日期值
fmt参数可忽略,是日期格式,用以指定的元素格式来截去输入的日期值。忽略它则由最近的日期截去
下面是该函数的使用情况:
trunc(sysdate,'yyyy') --返回当年第一天.
trunc(sysdate,'mm') --返回当月第一天.
trunc(sysdate,'d') --返回当前星期的第一天.
selecttrunc(sysdate,'YYYY')from dual;
selecttrunc(sysdate,'MM')from dual;
selecttrunc(sysdate,'D')from dual;
2.round函数(四舍五入)
描述 : 传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果。
SELECT ROUND( number, [ decimal_places ] ) FROM DUAL
[img]Oracle取整的函数
ceil(x) 向上取整
floor(x) 向下取整
round(x,n) 当n=0时就是取整,四舍腊陪五入轮冲蠢法则
x是你的小判余数
oracle 中什么函数可以把分钟显示为多少小时 多少分钟的格式
如果只想用oracle内置的函数,那么只有这个,把数字转换成interval类型,显示结果分4段,天、小时、迅弊册分钟、秒。
下例卜空把100分钟显示成1小时40分钟:
SQL select NUMTODSINTERVAL(100,'MINUTE') from dual;
NUMTODSINTERVAL(100,'MINUTE')
---------------------------------------
+000000000 01:40:00.000000000
如果不想用内置函数(因为超过24小时会自动转换成1天),可以自己写函数,算法如下
下例把100分亩宏钟显示成1小时40分钟:
SQL select floor(100/60) HOURS,mod(100,60) MINUTES from dual;
HOURS MINUTES
---------- ----------
1 40
SQL
oracle_plsql函数大全
1.ascii('A') 返回与指定的字符对应的十进制数
2.chr(65) 给出整数,返回对应的字符;
3. concat('010-'基高,'88888888') 连接字符者锋桥串
4.initcap('smith') 返回字符串并将字符串的第一个字母变为大写;
5.instr(C1,C2,I,J) 在字符串C1中搜索字符串C2,返回发现指定的字符的位置;
I搜索的开始位置,默认为1。 J出现的位置,默认为1。
6.length(name) 返回字符串的长度;
7. lower('AaBbCcDd') 返回字符串,并将所有的字符小写
8. upper('AaBbCcDd') upper from dual;返回字符串,并将所有的字符大写
9.rpad和lpad(粘贴字符) lpad(rpad('gao',10,'*'),17,'*') 得*******gao*******
10.ltrim和rtrim和trim 删除字符两边出现的空格。
11. substr (string,start,count)取子字符串,从start开始,取count个
12. replace ('string','s1','s2') string希望被替换的字符或变量,s1被替换的字符串
s2要替换的字符串
13. soundex 返回一个与给定的字符串读音相同的字符串首猛
14.TRIM('s' from 'string') 剪掉前面和后面的字符
15. abs(100) 返回指定值的绝对值
16. acos(-1) 给出反余弦的值
17. asin(0.5) 给出反正弦的值
18. atan(1) 返回一个数字的反正切值
19. ceil(3.1415927) 返回大于或等于给出数字的最小整数
20. cos(-3.1415927) 返回一个给定数字的余弦
21. cosh(20) 返回一个数字反余弦值
22. exp(2) 返回一个数字e的n次方根
23. floor(2345.67) 对给定的数字取整数
24. ln(1) 返回一个数字的对数值
25.log(n1,n2) 返回一个以n1为底n2的对数
26.mod(n1,n2) 返回一个n1除以n2的余数
27.power(n1,n2) 返回n1的n2次方根
28. round和trunc 按照指定的精度进行舍入
29.sign(n) 取数字n的符号,大于0返回1,小于0返回-1,等于0返回0
30. sin(1.57079) 返回一个数字的正弦值
31. sin(20) 返回双曲正弦的值
32.sqrt(n) 返回数字n的根
33. tan(n) 返回数字n的正切值
34. tanh(n) 返回数字n的双曲正切值
35. trunc (124.16666,2) 按照指定的精度截取一个数
36. add_months 增加或减去月份
37. last_day(sysdate) 返回日期的最后一天
38. months_between (date2,date1) 给出date2-date1的月份
39. new_time (date,'this','that') 给出在this时区=other时区的日期和时间
40. next_day (date,'day') 给出日期date和星期x之后计算下一个星期的日期
41. sysdate 用来得到系统的当前日期
42. chartorowid 将字符数据类型转换为ROWID类型
43. convert (c,dset,sset)
44. hextoraw 将一个十六进制构成的字符串转换为二进制
45. rawtohext 将一个二进制构成的字符串转换为十六进
46. rowidtochar 将ROWID数据类型转换为字符类型
47. to_char (date,'format')
48. to_date(string,'format') 将字符串转化为ORACLE中的一个日期
49. to_multi_byte('高') 将字符串中的单字节字符转化为多字节字符
50. to_number('1999') 将给出的字符转换为数字
51. bfilename (dir,file)
52. convert('x','desc','source') 将x字段或变量的源source转换为desc
53. dump(s,fmt,start,length)
54. empty_blob()和empty_clob() 这两个函数都是用来对大数据类型字段进行初始化操
作的函数
55. greatest('AA','AB','AC') 返回一组表达式中的最大值,即比较字符的编码大小.
56. least('啊','安','天') 返回一组表达式中的最小值
57. uid 返回标识当前用户的唯一整数(user_id=uid)
58. user 返回当前用户的名字
59. userevn 返回当前用户环境的信息,opt可以是:
ENTRYID,SESSIONID,TERMINAL,ISDBA,LABLE,LANGUAGE,CLIENT_INFO,LANG,VSIZE
ISDBA 查看当前用户是否是DBA如果是则返回true
60.avg(DISTINCT|ALL) all表示对所有的值求平均值,distinct只对不同的值求平均值
61.max(DISTINCT|ALL) 求最大值,DISTINCT表示对不同的值求最大值,相同的只取一次
62.min(DISTINCT|ALL) 求最小值,DISTINCT表示对不同的值求最小值,相同的只取一次
63. stddev (distinct|all) 求标准差,DISTINCT表示只对不同的值求标准差
64. variance (DISTINCT|ALL) 求协方差
65. group by主要用来对一组数进行统计
66. having 对分组统计再加限制条件
67.ORDER BY 用于对查询到的结果进行排序输出