另一种解决方法是将年份中的日期%j除以365.0作为年份的一部分。所以,你最终用:
select strftime('%Y', 'now') + strftime('%j', 'now')/365.2422) - (strftime('%Y', Birth_Date) + strftime('%j', Birth_Date)/365.2422);
然后,您可以把结果为一个整数:
select CAST(strftime('%Y', 'now') + strftime('%j', 'now')/365.2422) - (strftime('%Y', Birth_Date) + strftime('%j', Birth_Date)/365.2422) AS INT);
或使用ROUND()四舍五入的结果:
select round(strftime('%Y', 'now') + strftime('%j', 'now')/365.2422) - (strftime('%Y', Birth_Date) + strftime('%j', Birth_Date)/365.2422));
我已经更新计算方法如下,在Robert的注释中指出,它使用太阳年的正确小数天数。
与其他计算的区别在于,此计算的结果是可以转换为整数(以获得确切的年数)或四舍五入(以获得近似年数)的十进制数。
对于生日,大概的年数可能并不相关,但对于您购买的东西的年代更有意义。