本文主要是介绍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)
这篇关于SQL取有效值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!