postgresql与oracle 计算出两个日期之间相差的小时数

alexlee 2023-1-12 372 1/12

一. 对于开发来说,经常要用不用不同的数据库,也是相当频繁的存在。

1.0 对于是做项目的开发,不同的公司,要求使用不同的数据库,这是再平常不过的事情了。

这里简单介绍下背景,由于之前是使用oracle 数据库,现在要转化成 postgresql来使用,那无庸置疑,肯定有语法上的差异。

接下来,我们就来介绍一下,oracle 跟 postgresql 之间所面对的差异性的问题。

oracle 计算两个日期相差的小时数,在oracle 里边这语法就是相当简的简洁。

CEIL ((b.outtime - a.intime) * 24)

因为项目需要,数据库突然切换成 postgresql

之前 oracle 那套完全跑不动了

将上边的语句替换成如下语句,便可以正常算出两个时间相差的小时数,我们看下这postgresql 的讲法,相对而言,复杂一些,但是最后还是能算出我们要的结果。

ceil(cast(date_part('epoch', b.outtime - a.intime)/60/60 as numeric ))

做为合格的开发者,我们除了做下语法上的变化外,我们还要验证一下,数据的准确性。

两个语句,最后算出来的结果是否相同,这也是相当重要的,避免以后不必要的问题,后期因为计算的问题,导致数据不准确。

为此,我们并不可能知道所有的语法,但当我们要进行转化的情况下,我们只能凭借经验跟其他搜索的结果,进行语法上的更改,以便达到我们想要的目的。

以上是自己的做为资深开发的一些个人经历,把这些经验分享给大家,希望以后大家在从事开发中,可以避免不必要的麻烦,跟浪费时间精力。

要是大家喜欢我的文章的话,可以在文章下留言或是联系我,共同进步,共同探讨开发的一些案例,促进彼此间的交流,分享一些日常的开发趣事。

- THE END -
最后修改:2024年2月5日
0

共有 0 条评论