【发布时间】:2011-06-23 13:27:47
【问题描述】:
我有一个包含两个日期的表格,“Start_Date”和“End_Date”。在 DB2 SQL 中,有没有办法确定这两个日期之间是否有闰日?
谢谢!
【问题讨论】:
-
什么版本的 DB2 以及它在什么平台上运行?
我有一个包含两个日期的表格,“Start_Date”和“End_Date”。在 DB2 SQL 中,有没有办法确定这两个日期之间是否有闰日?
谢谢!
【问题讨论】:
当然,您可以使用一些日期数学和 DAYS 函数来执行此操作,方法是将开始日期和结束日期之间的天数与开始日期和结束日期之间的天数进行比较(当它们都已移动时) 1 年。
如果两种情况下两个日期之间的天数相同,则没有闰日。如果天数不同,则至少有 1 个闰日。
此表达式将返回闰日数:
select
( DAYS(end_date + 1 year) - DAYS(start_date + 1 year) ) -
( DAYS(end_date) - DAYS(start_date) )
from
sysibm.sysdummy1
只要 end_date >= start_date,这应该可以工作。
将其封装成标量用户定义函数很简单。
【讨论】: