trunc

Oracle中trunc函数、round 函数、ceil函数和floor函数的使用

微笑、不失礼 提交于 2019-12-02 23:19:45
1.1trunc函数处理数字 trunc函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。 其具体的语法格式如下 TRUNC(number[,decimals]) 其中: number 待做截取处理的数值 decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分。 ? 1 2 3 selecttrunc(123.98) from dual; selecttrunc(123.123,2) from dual; selecttrunc(123.123,-1) from dual; 注意:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记。与取整类似,比如参数为1即取整到十分位,如果是-1,则是取整到十位,以此类推;如果所设置的参数为负数,且负数的位数大于或等于整数的字节数的话,则返回为0。如:TRUNC(89.985,-3)=0。 1.2trunc函数处理日期 trunc函数返回以指定元元素格式截去一部分的日期值。 其具体的语法格式如下: TRUNC(date,[fmt]) 其中: date为必要参数,是输入的一个日期值 fmt参数可忽略,是日期格式,用以指定的元素格式来截去输入的日期值。忽略它则由最近的日期截去 下面是该函数的使用情况: ? 1 2 3 4 5 6

delphi的函数round、trunc、ceil、floor 和RoundTo

感情迁移 提交于 2019-12-02 16:25:24
1. Round (四舍六入五留双) 功能说明:对一个实数进行四舍五入。(按照银行家算法) 例: var i, j: Integer; begin i := Round(1.5); // i等于2 j := Round(2.5); // j等于2 end; 在 Delphi 中使用Round函数得到的答案有时与我们所预期的会不太一样:采用的是四舍六入五留双。即当舍或入位大于或 小于五时按四舍五入来处理,而当舍或入位等于五时,就要看前面一位是什么,根据奇进偶不进,它总是返回一个偶数值。 例: i:= Round(11.5)//i等于12 i:= Round(10.5)//i等于10 这种Round其实是按照银行家算法,统计学上一般都用这种算法,比传统的"四舍五入"要科学。 如果要使用传统的"四舍五入"方法,可以使用下面函数: function RoundClassic(R: Real) 2. trunc (取得X的整数部分) 如: trunc (-123.55)=-123, floor(123.55)=123 3. ceil (取得大于等于X的最小的整数) 如:ceil(-123.55)=-123, ceil(123.15)=124 4. floor (取得小于等于X的最大的整数) 如:floor(-123.55)=-124,floor(123.55)=123 5.RoundTo

RoundTo 及其相关的一些内容总结

帅比萌擦擦* 提交于 2019-12-02 16:25:04
1. Round (四舍六入五留双) 功能说明:对一个实数进行四舍五入。(按照银行家算法) 例: var i, j: Integer; begin i := Round(1.5); // i等于2 j := Round(2.5); // j等于2 end; 在 Delphi 中使用Round函数得到的答案有时与我们所预期的会不太一样:采用的是四舍六入五留双。即当舍或入位大于或小于五时按四舍五入来处理 ,而当舍或入位等于五时,就要看前面一位是什么,根据奇进偶不进,它总是返回一个偶数值。 例: i:= Round(11.5)//i等于12 i:= Round(10.5)//i等于10 这种Round其实是按照银行家算法,统计学上一般都用这种算法,比传统的"四舍五入"要科学。 如果要使用传统的"四舍五入"方法,可以使用下面函数: function RoundClassic(R: Real) 2. trunc (取得X的整数部分) 如: trunc (-123.55)=-123, floor(123.55)=123 3. ceil (取得大于等于X的最小的整数) 如:ceil(-123.55)=-123, ceil(123.15)=124 4. floor (取得小于等于X的最大的整数) 如:floor(-123.55)=-124,floor(123.55)=123 5.RoundTo

猜猜每条SQL是干啥的?

孤街醉人 提交于 2019-12-02 15:32:43
select to_char ( trunc ( add_months ( last_day ( to_date ( '2015-09-02' , 'yyyy-mm-dd' ) ) , - 1 ) + 1 ) , 'yyyy-mm-dd' ) from dual select trunc ( sysdate , 'yyyy' ) from dual ; select trunc ( sysdate , 'year' ) - 1 + 0.99999 from dual ; select trunc ( sysdate , 'Q' ) from dual ; select add_months ( trunc ( sysdate , 'Q' ) , 3 ) - 1 from dual ; select add_months ( trunc ( sysdate , 'Q' ) , 3 ) - 0.00001 from dual ; select trunc ( last_day ( add_months ( sysdate , - 1 ) ) ) + 0.99999 from dual ; select trunc ( last_day ( add_months ( sysdate , - 1 ) ) ) + 0.98958 from dual ; select trunc ( add

Oracle中trunc函数、round 函数、ceil函数和floor函数的使用

拈花ヽ惹草 提交于 2019-12-01 08:02:26
1.1trunc函数处理数字 trunc函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。 其具体的语法格式如下 TRUNC(number[,decimals]) 其中: number 待做截取处理的数值 decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分。 select trunc(123.98) from dual; select trunc(123.123,2) from dual; select trunc(123.123,-1) from dual; 注意:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记。与取整类似,比如参数为1即取整到十分位,如果是-1,则是取整到十位,以此类推;如果所设置的参数为负数,且负数的位数大于或等于整数的字节数的话,则返回为0。如:TRUNC(89.985,-3)=0。 1.2trunc函数处理日期 trunc函数返回以指定元元素格式截去一部分的日期值。 其具体的语法格式如下: TRUNC(date,[fmt]) 其中: date为必要参数,是输入的一个日期值 fmt参数可忽略,是日期格式,用以指定的元素格式来截去输入的日期值。忽略它则由最近的日期截去 下面是该函数的使用情况: trunc(sysdate,'yyyy

oracle 获取某个时间

旧街凉风 提交于 2019-12-01 02:46:54
1、获取前一自然日:select to_char(TRUNC(to_date(20190101,'yyyy-mm-dd')-1),'yyyymmdd') from dual; 2、以下引用自: https://blog.csdn.net/wangchangpen62/article/details/46548893 –前一天的开始时刻 SELECT to_date(to_char(TRUNC(SYSDATE-1),’yyyy-mm-dd’) || ‘00:00:00’,’yyyy-mm-dd hh24:mi:ss’) FROM DUAL; –前一天的最后时刻 SELECT to_date(to_char(TRUNC(SYSDATE-1),’yyyy-mm-dd’) || ‘23:59:59’,’yyyy-mm-dd hh24:mi:ss’) FROM DUAL; –上个月第一天的最后时刻 select to_date(to_char(add_months(trunc(sysdate),-1),’yyyy-mm’) || ‘01 23:59:59’,’yyyy-mm-dd hh24:mi:ss’)from dual; –上个月的第一天 SELECT to_date(to_char(TRUNC(SYSDATE-1),’yyyymm’) || ‘01’,’yyyy-mm-dd’)

oracle笔记之计算年龄、工龄

落花浮王杯 提交于 2019-11-30 11:56:18
方法一:利用months_between 函数计算 SELECT TRUNC(months_between(sysdate, birthday)/12) AS age from dual; 方法二:日期转换为 'yyyyMMdd' 格式后,相差一年的两个日期差为:10000 select TRUNC((to_char(sysdate, 'yyyyMMdd') - to_char(birth, 'yyyyMMdd')) / 10000) as age from mytable 来源: https://www.cnblogs.com/Bokeyan/p/11582661.html

oracle JOB常见的执行时间

て烟熏妆下的殇ゞ 提交于 2019-11-30 04:46:11
在command window窗口中执行下面脚本 ===========提示不是所有的变量绑定的=== sql>命令行 ============================================= variable job number; begin sys.dbms_job.submit(job => :job, what => 'prc_g_test;', next_date => to_date('22-10-2008 10:06:41', 'dd-mm-yyyy hh24:mi:ss'), interval => 'sysdate+1/1440');--每天1440分钟,即一分钟运行test过程一次 commit; end; / //////job创建// ===只需要指定两个就可以了=== what : imp_mon_proc; --分析有 分号 interval:这个view 看到的双引号,我们看到的是单引号 ---只要两个就可以了 broken: Broken就是不执行了 job作了多次尝试后失败 或者手工dbms_job.broke(jobno,true) 都导致Broken=Y 一旦Broken=Y 此job将不再执行 除非dbms_job.run() or dbms_job.broken(jobno,false)...... //////////

oracle中处理日期的方法

淺唱寂寞╮ 提交于 2019-11-30 00:35:50
1. 日期和字符转换函数用法(to_date,to_char ) select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss’) as nowTime from dual; //日期转化为字符串 select to_char(sysdate,‘yyyy’) as nowYear from dual; //获取时间的年 select to_char(sysdate,‘mm’) as nowMonth from dual; //获取时间的月 select to_char(sysdate,‘dd’) as nowDay from dual; //获取时间的日 select to_char(sysdate,‘hh24’) as nowHour from dual; //获取时间的时 select to_char(sysdate,‘mi’) as nowMinute from dual; //获取时间的分 select to_char(sysdate,‘ss’) as nowSecond from dual; //获取时间的秒 2. 字符串和时间互转 select to_date(‘2004-05-07 13:23:44’,‘yyyy-mm-dd hh24:mi:ss’) from dual select to_char( to_date(222,‘J’),

Oracle - 获取当前周别函数

天大地大妈咪最大 提交于 2019-11-28 19:15:38
1 CREATE OR REPLACE FUNCTION GET_WEEK (V_RQ in DATE) return varchar2 as 2 str varchar2(20); 3 str1 varchar2(20); 4 5 begin 6 str :=TRIM(TO_CHAR(TRUNC((V_RQ+TO_CHAR(TRUNC(V_RQ,'YYYY'),'D')-1 -TRUNC(V_RQ,'YYYY'))/7)+1,'00')); 7 return str; 8 end; 来源: https://www.cnblogs.com/jeremywucnblog/p/11421775.html