2

本が出版されたときのタイプ DATE の列があるテーブルがあります。変更したい単純なクエリがあります。

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

私が修正したいのは、Books.release_date の戻り値を Age として返すことです。現在、そこにある DATE フィールドを返しています (例: 2005-2-5)。

実際に選んでもらいたい数値は発売年を10進数(小数点以下1桁まで)で表しているので、(ex.8.2)のように年代が表示されます。

の方針に沿って何かをする必要があると思います

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

結果は 13.4949 と表示されます。これは小数点以下が多く、そのような分割が最も正確な方法であるかどうかもわかりません。

4

2 に答える 2

2

あなたがやっているような除算は、あなたが探している結果を得るためにうまくいくはずです。

これにより、適切な量の小数点が得られるはずです。

Select Books.title as Title
, ROUND(DATEDIFF(CURDATE(),Books.release_date)/365.25,1) as Age 
From Books
于 2013-06-30T17:04:07.783 に答える
0

これは便利かも

SELECT Books.title as Title, round(DATEDIFF(dd, '2005-2-5',getdate())/365.0,1) as Age FROM Books
于 2016-01-05T09:22:41.107 に答える