ceil函式和round函式的用法

2021-10-08 11:46:46 字數 2075 閱讀 7574

今天開發乙個功能,需要計算兩個日期之間的小時數,所以寫了乙個sql,如下:

select ceil((to_date('2020-07-25 18:00:00', 'yyyy-mm-dd hh24-mi-ss') -

to_date('2020-07-24 18:00:00', 'yyyy-mm-dd hh24-mi-ss')) * 24) as minutes

from dual

執行結果:24

select ceil((to_date('2020-07-25 19:00:00', 'yyyy-mm-dd hh24-mi-ss') -

to_date('2020-07-24 18:00:00', 'yyyy-mm-dd hh24-mi-ss')) * 24) as minutes

from dual

執行結果:26

ceil() 函式向上捨入為最接近的整數

我在執行ceil中的sql:

select (to_date('2020-07-25 19:00:00', 'yyyy-mm-dd hh24-mi-ss') -

to_date('2020-07-24 18:00:00', 'yyyy-mm-dd hh24-mi-ss')) * 24 as minutes

from dual

執行結果:25

select to_date('2020-07-25 19:00:00', 'yyyy-mm-dd hh24-mi-ss') -

to_date('2020-07-24 18:00:00', 'yyyy-mm-dd hh24-mi-ss') as minutes

from dual

執行結果:1.04166666666667

select ceil(25) from dual

執行結果:25

當我直接用所得天數 * 24時執行結果為25,我又單獨執行了ceil(25),執行結果也是25,所以我有個疑惑不清楚為什麼會變成了26,有清楚的大神可以幫我解下惑,萬分感謝!!!

最後我用round函式+to_number()實現了我想要的結果:

select round(to_number((to_date('2020-07-25 18:00:00', 'yyyy-mm-dd hh24-mi-ss') -

to_date('2020-07-24 18:00:00', 'yyyy-mm-dd hh24-mi-ss')) * 24)) as minutes

from dual

執行結果:24

select round(to_number((to_date('2020-07-25 19:00:00', 'yyyy-mm-dd hh24-mi-ss') -

to_date('2020-07-24 18:00:00', 'yyyy-mm-dd hh24-mi-ss')) * 24)) as minutes

from dual

執行結果:25

round函式返回乙個數值,該數值是按照指定的小數字數進行四捨五入運算的結果。除數值外,也可對日期進行捨入運算

round函式就是返回乙個數值,該數值是按照指定的小數字數進行四捨五入運算的結果 [1] 。

round函式的語法是:round(number,num_digits),即:round(數值,保留的小數字數)

number:需要進行四捨五入的數字。

num_digits:指定的位數,按此位數進行四捨五入。

其中,如果 num_digits 大於 0,則四捨五入到指定的小數字。

如果 num_digits 等於 0,則四捨五入到最接近的整數。

如果 num_digits 小於 0,則在小數點左側進行四捨五入。

=round(3.19, 1) 將 3.19 四捨五入到乙個小數字 (3.2)

=round(2.649, 1) 將 2.649 四捨五入到乙個小數字 (2.6)

=round(-5.574, 2) 將 -5.574 四捨五入到兩小數字 (-5.57)

=round(18.8, -1) 將 18.8 四捨五入到小數點左側一位 (20)。這個引數-1表示取整到十位數。

floor函式,ceil函式

floor函式 數值向下取整 ceil函式 將數值轉換為大於或等於它的最小整數 sqrt 求平方根 上記函式都在math模組中 import math math.floor 19.6 19.0 math.ceil 19.3 20.0 math.sqrt 16 4.0 另一種呼叫方式,不用每次呼叫時都...

floor函式 ceil函式

floor函式 floor x 有時候也寫做floor x 其功能是 向下取整 或者說 向下捨入 即取不大於x的最大整數 與 四捨五入 不同,下取整是直接取按照數軸上最接近要求的值左邊的值,也就是不大於要求的值的最大的那個 標頭檔案 include math.h 例如 x 6.04 y floor ...

floor函式 與 ceil函式

floor函式 floor x 有時候也寫做floor x 其功能是 下取整 或者說 向下捨入 即取不大於x的最大整數 與 四 舍 五入 不同,下取整是直接去掉小數部分 例如 x 3.14,floor x 3 y 9.99999,floor y 9 在c語言的庫函式中,floor函式的語法如下 in...