当前位置: 代码迷 >> 综合 >> SQL函数取有效值
  详细解决方案

SQL函数取有效值

热度:54   发布时间:2024-01-25 12:57:43.0

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

 

 

  相关解决方案