2013-06-30 81 views
2

我有一個表,其中有一個DATE類型的列的列,當一本書已經發布。我有一個簡單的查詢,我想修改。使用datediff與年1小數

SELECT Books.title as Title, Books.release_date as Age FROM Books 

我想修改的東西是Books.release_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,這是許多小數點,也不能肯定,如果這樣的劃分是最準確的方式?

+0

從技術上講,它應該使用公曆使用365.2425。不是說這裏會有很大的變化...... – PinnyM

回答

2

像你正在做的事情那樣的分部應該很好地工作以得到你要找的結果。

這應該讓你小數點適量:

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

可能這是有用的

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