繁体   English   中英

计算SQL Server和DB2中2个日期之间的差异

[英]Calculation the difference between 2 dates in SQL Server and DB2

我知道有很多方法可以计算不同数据库中日期之间的差异。 我的问题是,我需要一种方法来使用相同的SQL查询在SQL Server和DB2中都可以使用。

每年我可以使用

CURRENT_TIMESTAMP - [BIRTHDATE] AS AGETHISYEAR

但是我也想知道一个十进制形式的人的年龄,即34,4,这取决于人的生日和当前日期。

在SQL Server中, [BIRTHDATE]的列类型为DATETIME而在DB2中,列类型为DATE

格式为YYYY-MM-DD

有没有办法做到这一点?

问候,阿尔弗雷德

我认为,编写在两个数据库中都能使用的函数的唯一方法是使用year()month()day() ,或者自己编写函数。 两个数据库之间的日期函数没有太多重叠。

例如,要获取两个日期之间的完整年份,可以使用:

select (year(CURRENT_TIMESTAMP) - year(birthdate) +
        (case when month(CURRENT_TIMESTAMP) * 100 + day(CURRENT_TIMESTAMP) <
                   month(birthdate) * 100 + day(birthdate)
              then -1 else 0
         end)
        ) as AgeInYears

小数年会更加复杂。 当然,每个数据库都有自己更合理的方法来获取所需的内容。 方法不同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM