Mysql 使用datediff和1位小数表示年份

Mysql 使用datediff和1位小数表示年份,mysql,sql,Mysql,Sql,我有一个表格,其中有一列类型,用于记录书籍出版的日期。我有一个简单的查询,我想修改它 SELECT Books.title as Title, Books.release_date as Age FROM Books 我想修改的是Books.release_date作为Age的返回值,目前它返回的是其中的date字段(例如2005-2-5) 我实际上希望被选中的值是作为十进制数发布的年份(最多1个小数点),因此它将显示年龄,例如(例如8.2) 我相信我将需要做一些类似于 Select Book

我有一个表格,其中有一列类型,用于记录书籍出版的日期。我有一个简单的查询,我想修改它

SELECT Books.title as Title, Books.release_date as Age FROM Books
我想修改的是Books.release_date作为Age的返回值,目前它返回的是其中的date字段(例如2005-2-5)

我实际上希望被选中的值是作为十进制数发布的年份(最多1个小数点),因此它将显示年龄,例如(例如8.2)

我相信我将需要做一些类似于

Select Books.title as Title, DATEDIFF(CURDATE(),Books.release_date)/365.25 as Age 
From Books

我的结果显示为13.4949,相当于许多小数点,也不确定这样的除法是否是最精确的方法

像你正在做的那样的划分应该很好地工作,以获得你想要的结果

这将为您提供正确的小数点数量:

Select Books.title as Title
, ROUND(DATEDIFF(CURDATE(),Books.release_date)/365.25,1) as Age 
From Books
也许这是有用的

SELECT Books.title as Title, round(DATEDIFF(dd, '2005-2-5',getdate())/365.0,1) as Age FROM Books

从技术上讲,它应该使用365.2425使用公历。并不是说在这里会有很大的不同。。。