mysql年齡段怎么計算 mysql年齡怎么求

MySQL根據(jù)出生日期計算年齡的五種方法比較

以前使用mysql不是很多,對mysql的函數(shù)也不是很熟悉,遇到這個問題第一時間百度搜索,搜索到這兩種方法,這兩種方法是排在百度第一條的博客。

創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站制作、成都網(wǎng)站設(shè)計與策劃設(shè)計,大姚網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:大姚等地區(qū)。大姚做網(wǎng)站價格咨詢:18982081108

方法一,作者也說出了缺陷,就是當(dāng)日期為未來日期時結(jié)果為0,而不是負(fù)數(shù);這里使用了5個函數(shù)和兩個運算符。

方法二,解決了方法一為負(fù)數(shù)的問題,但看起來更復(fù)雜;這里使用了6個函數(shù)和3個運算符。

看了這篇貼子后,我就暈了,怎么會這么復(fù)雜,以前用Sql Server很簡單就可以了。我堅信一定有簡單高效的方法。很快就找到了根據(jù)以上方法改良后的方法。

改良后的方法一,少了一個函數(shù)和一個運算符,當(dāng)日期為未來日期時計算結(jié)果還是為0;

改良后的方法二,還是6個函數(shù)和3個運算符,看起來簡單些;取日期的右邊五位,當(dāng)日期格式為‘2013-01-01’時取到的是‘01-01’,沒有問題;當(dāng)日期格式為‘2013-1-1’縮寫格式時,取右邊的五位取出的是‘3-1-1’,會導(dǎo)致出錯。

然后自己根據(jù)MYSQL的幫助文檔中的日期函數(shù)想到了第三種方法:

取生日和當(dāng)前日期之前的天數(shù)除以一年的實際天數(shù)(365天5小時48分46秒),然后取整。這樣只用了三個函數(shù)和一個運算符就搞定了。

然后,很快在國外網(wǎng)站找到了第四種方法:

這種方法只用了兩個函數(shù)就搞定了,應(yīng)該是最佳方法了。

測試了一下以上四種方法,假如當(dāng)前日期為'2017-1-13',當(dāng)生日為‘2013-1-14’時,還差一天就要過生日了,離4歲只 差一天了,結(jié)果還是3歲,感覺不是很合理;把方法三改造一下,四舍五入得到方法五:

這樣計算出的年齡離實際的周歲最接近了,但可能方法四是最符合年齡定義的了。

MySQL通過出生日期計算年齡

報錯是因為 沒有這個方法

可能的原因是 1 方法是自定義的 你當(dāng)前數(shù)據(jù)庫中沒有寫入這個方法

2 這個方法是官方的但是 版本號不同 這個方法被取消了

解決的方法 1 寫入這個方法調(diào)用 2 更換 對應(yīng)版本的 mysql

mysql查詢年齡

在Mysql中計算年齡:

SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(birthday)), '%Y')+0 AS age FROM 表名;

網(wǎng)站名稱:mysql年齡段怎么計算 mysql年齡怎么求
URL網(wǎng)址:http://www.bm7419.com/article32/ddcshpc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、網(wǎng)站收錄、微信公眾號虛擬主機(jī)、外貿(mào)建站、軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)