SQL函数取有效值

涉及到的函数:

Oracle:trunc、rounddown,MySQL+SQLServer:floor,ceiling

trunc(number,num_digits)  --不进行四舍五入,直接截取,num_digits默认值为0

列:

select trunc(123.456,1) from dual --123.4
select trunc(123.456,-1) from dual --120
select trunc(123,1) from dual --123

拓展:

针对日期的案例,如:

select trunc(sysdate) from dual --2017/6/13  返回当天的日期

select trunc(sysdate,'yyyy') from dual   --2017/1/1  返回当年第一天.

select trunc(sysdate,'mm') from dual  --2017/6/1  返回当月第一天.

select trunc(sysdate,'d') from dual  --2017/6/11 返回当前星期的第一天(以周日为第一天).

select trunc(sysdate,'dd') from dual  --2017/6/13  返回当前年月日

select trunc(sysdate,'hh') from dual  --2017/6/13 13:00:00  返回当前小时

select trunc(sysdate,'mi') from dual  --2017/6/13 13:06:00  返回当前分钟

rounddown (number,num_digits)  --不进行四舍五入,直接截取

round函数是会对末位进行四舍五入的,而rounddown不会,是直接截取的

---------------------------------------

floor,ceiling:试用于MySQL、SQLServer中

--floor:取小整数floor(123.45)=123 --不产生进位

--ceiling:取大整数ceiling(123.45)=124 --产生进位

--celling(12.1) 结果为 13
 
--floor(12.1)结果为 12

 

 

你可能感兴趣的:(数据库)