【问题标题】:Determining if a leap day falls between two days with DB2 SQL使用 DB2 SQL 确定闰日是否介于两天之间
【发布时间】:2011-06-23 13:27:47
【问题描述】:

我有一个包含两个日期的表格,“Start_Date”和“End_Date”。在 DB2 SQL 中,有没有办法确定这两个日期之间是否有闰日?

谢谢!

【问题讨论】:

  • 什么版本的 DB2 以及它在什么平台上运行?

标签: sql db2


【解决方案1】:

当然,您可以使用一些日期数学和 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,这应该可以工作。

将其封装成标量用户定义函数很简单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多