trunc()函数!数据集成时,写一个查询语句,将某字段为小数的数据变成整数

trunc函数!数据集成时,写一个查询语句,将某字段为小数的数据变成整数

一、需求描述

工作中,我们经常会做数据集成,将其他项目组的数据库数据集成到自己项目组的库中使用。
对方是Oracle数据库,某一个字段为work_id,大部分的值都是整数,少部分的值因为某原因存为小数。
我方数据库为MySQL数据库,work_id的类型为int8整形,且老大要求将work_id数据的值取整。
一般情况下,对面有什么数据,我们整个拿过来就可以了,那就不用过滤,将work_id的类型改为浮点型即可。

二、trunc()函数

在解决问题之前,我们先来学习一下Oracle的trunc()函数。

2.1认识

trunc是一种函数,功能和函数INT类似,是截取日期或数字,返回指定的值。函数trunc直接去除数字的小数部分,而函数INT则是向下舍入到最接近的整数。

2.2使用

(1)日期值处理
trunc(data,[fmt])
date 是必须输入的一个日期值,fmt 参数可忽略,是日期格式,缺省时表示指定日期的0点。
举例:


--sysdate和trunc(sysdate)是不一样的 sysdate在当天的零时零分零秒等于trunc(sysdate)
trunc(sysdate,'yyyy') --返回当年第一天.
trunc(sysdate,'mm') --返回当月第一天.
trunc(sysdate,'d') --返回当前星期的第一天.
trunc(sysdate,'dd')--返回当前年月日
trunc(sysdate, 'hh')--返回当前小时
trunc(sysdate, 'mi')--返回当前分钟// An highlighted block
var foo = 'bar';

(2)数值处理
TRUNC(number,[decimals])
  number 为必要参数,是输入的一个number数值
  decimals 参数可忽略,是要截取的位数,缺省时表示截掉小数点后边的值。
举例

--968.66,将小数点右边指定位数后面的截去; 
trunc(968.667,2) 
--800,第二个参数可以为负数,表示将小数点左边指定位数后面的部分截去,即均以0;
trunc(823.887,-2)
--888,默认截去小数点后面的部分;
trunc(888.666) 

三、解决方案

因为需求上只用将小数变成整数,所以我将查询到的数据集进行select,对work_id进行取整。
语句如下:

select id,trunc(work_id) work_id  from  a;
--a为结果集
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱喝皮蛋瘦肉粥的小饶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值