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

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

只截取不进位

select trunc(11.55)from dual-- -(结果为11)

select trunc(11.55,1)from dual-- -(结果为11.5)

select trunc(11.55,-1)from dual-- -(结果为1)

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

大于这个数的最小整数

select ceil(11.55)from dual--(结果为12)

select ceil(-11.55,1)from dual--(结果为-11)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值