oracle时间相减得到分钟数,oracle中,怎么计算两个时间点的分钟数?

034631216336bc7ac428ccfd79aded9f.png

SELECT (TIME1 - TIME2) * 34 * 60 FROM DUAL

这个是可乐所说的

但是这个结果其实并不准确

因为两个时间相减,是以一天为1个单位,得到分钟的小数都是约数

那么这么相减得到的结果就有点奇怪了

比如

SELECT (TO_DATE('2003/12/14 13:31:54', 'YYYY/MM/DD HH24:MI:SS') - TO_DATE('2003/12/14 13:28:54', 'YYYY/MM/DD HH24:MI:SS')) * 34 * 60 FROM DUAL

结果很奇怪  4.25。

我觉得如果需要准确的分钟

我给你提供几个函数吧,你自己考虑考虑怎么做

总不能什么东西都是现成的

对不?

TO_DATE('2003/12/14 13:28:54', 'YYYY/MM/DD HH24:MI:SS')

把字符串型转化成日期类型

TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS')

把日期类型转化成字符串类型

当然 也可以

TO_CHAR(TO_DATE('2003/12/14 13:28:54', 'YYYY/MM/DD HH24:MI:SS'), 'YYYY-MM-DD HH24:MI:SS')

就可以把格式为 2003/12/14 13:28:54

转化为  2003-12-14 13:28:54

当然 也可以只取其中的年

TO_CHAR(SYSDATE, 'YYYY')

或者 月

TO_CHAR(SYSDATE, 'MM')

或者年和月

TO_CHAR(SYSDATE, 'YYYY-MM')

等等都可以

特别提醒一下转化小时

TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS')

表示24小时计时

TO_CHAR(SYSDATE, 'YYYY/MM/DD HH12:MI:SS')

表示12小时计时

当然如果只取小时

TO_CHAR(SYSDATE, 'HH24')

TO_CHAR(SYSDATE, 'HH12')

也可以取年和日  TO_CHAR(SYSDATE, 'YYYY-DD')

不过这么取没有什么实际意义

那么我们下一步  考虑取出单独的一个月 或者分钟  或者小时

假设取分钟吧

TO_CHAR(SYSDATE, 'MI')

我们可以再利用一个函数转化

那就是把分钟的字符串转化成数字类型

TO_NUMBER

比如 TO_NUMBER('123')

结果就是123

TO_NUMBER('123') - TO_NUMBER('100')

结果就是100

TO_NUMBER(TO_CHAR(SYSDATE, 'MI'))

得到的就是数据库当前时间的分钟数

有了这些方法,如果确实需要在数据库中实现计算

那么自己综合利用吧

累死我了,有问题的话再说吧

◆◆

评论读取中....

请登录后再发表评论!

◆◆

修改失败,请稍后尝试

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值