![](/img/trans.png)
[英]SQL(DB2) Difference between two dates in hours using Timestampdiff and Cast
[英]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.