DB2中天数的差异

问题描述:

我必须计算两个日期之间的天数差异,并且我发现 在DB2中没有这样的东西,例如DATEDIFF()函数。DB2中天数的差异

我试图做这样的:

(DAYOFYEAR(date1)-DAYOFYEAR(date2)+(YEAR(date1)-YEAR(date2))*365) 

这显然是不工作的闰年,但我不必面对这一切。

我知道date1总是晚于date2。

我的逻辑有缺陷吗?它不工作(这是一个练习,我有一个功能来测试我的结果)。有没有更简单的方法来做到这一点?

谢谢。

+0

如果它不工作(顺便说一下,怎么办?),那么你的逻辑中可能有缺陷。 – mustaccio 2014-11-05 20:51:24

+0

我得到不同的结果比测试函数说我应该得到。我的意思是:我的计算天数差异的方法是否正确?如果是的话,那么我的查询中还有其他一些错误,但如果计算错误,则无法找到它。 – 2014-11-06 07:52:39

如果我们知道您使用的是哪个版本的DB2以及它在哪个平台上运行,它可能会有所帮助。但它很可能是你可以做这样的事情:

select 
     days(my1stdate) - days(my2nddate) as myDuration 
from mySchema.myTable 

的日子()函数转换日期值到1月1日,0001之间的天数,以及所提供的日期值。一旦两个DATE都被转换,减法(差异)就很简单。

+0

不知道这个功能,现在工作了,谢谢。 – 2014-11-06 13:47:20