最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mysql中通過生日計算年齡的多種方法

 更新時間:2018年03月29日 11:11:52   作者:m0_38034994  
本文給大家分享mysql通過生日計算年齡的方法,每一種方法都非常不錯,需要的朋友參考下吧

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

方法一

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

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

方法二

SELECT DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(birthday, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(birthday, '00-%m-%d')) AS age

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

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

改良后方法一和方法二

SELECT year( from_days( datediff( now( ), birthdate)));
SELECT YEAR(CURDATE())-YEAR(birthday)-(RIGHT(CURDATE(),5)<RIGHT(birthday,5));

改良后的方法一,少了一個函數(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ù)想到了第三種方法:

方法三

SELECT FLOOR(DATEDIFF(CURDATE(), @birthday)/365.2422)

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

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

方法四

 SELECT TIMESTAMPDIFF(YEAR, @birthday, CURDATE())

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

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

方法五

SELECT ROUND(DATEDIFF(CURDATE(), @birthday)/365.2422)

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

總結(jié)

以上所述是小編給大家介紹的Mysql中通過生日計算年齡,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

您可能感興趣的文章:

相關(guān)文章

  • MySQL之容災(zāi)方案解讀

    MySQL之容災(zāi)方案解讀

    這篇文章主要介紹了MySQL之容災(zāi)方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 淺析MySQL索引結(jié)構(gòu)采用B+樹的問題

    淺析MySQL索引結(jié)構(gòu)采用B+樹的問題

    數(shù)據(jù)庫的存儲引擎都是采用B樹或者B+樹來實現(xiàn)索引的存儲,總體來說,我認(rèn)為技術(shù)方案的選型,更多的要根據(jù)具體的業(yè)務(wù)場景來決定,并不一定是說B+樹就是最好的選擇,就像MongoDB里面采用B樹結(jié)構(gòu),本文介紹我對MySQL索引結(jié)構(gòu)采用B+樹的理解
    2022-06-06
  • 解析SQL Server 視圖、數(shù)據(jù)庫快照

    解析SQL Server 視圖、數(shù)據(jù)庫快照

    在程序開發(fā)過程中,任何一個項目都離不開數(shù)據(jù)庫,這篇文章給大家詳細(xì)介紹SQL Server 視圖、數(shù)據(jù)庫快照相關(guān)內(nèi)容,需要的朋友可以參考下
    2015-08-08
  • MySQL中explain使用快速查詢手冊

    MySQL中explain使用快速查詢手冊

    我們會開慢查詢?nèi)ビ涗浺恍﹫?zhí)行時間比較久的SQL語句,找出這些SQL語句并不意味著完事了,會用到explain這個命令來查看一個這些SQL語句的執(zhí)行計劃,查看該SQL語句有沒有使用索引,下面這篇文章主要介紹了關(guān)于MySQL中explain使用快速查詢手冊的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • MySQL數(shù)據(jù)庫遷移到Oracle數(shù)據(jù)庫的完整步驟記錄

    MySQL數(shù)據(jù)庫遷移到Oracle數(shù)據(jù)庫的完整步驟記錄

    在研發(fā)過程中可能會用到將表數(shù)據(jù)庫中的表結(jié)構(gòu)及數(shù)據(jù)遷移到另外一種數(shù)據(jù)庫中,比如說從mysql中遷移到oracle中,這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫遷移到Oracle數(shù)據(jù)庫的完整步驟,需要的朋友可以參考下
    2024-06-06
  • MySQL控制流函數(shù)(-if?,elseif,else,case...when)

    MySQL控制流函數(shù)(-if?,elseif,else,case...when)

    這篇文章主要介紹了MySQL控制流函數(shù)(-if?,elseif,else,case...when),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-07-07
  • mysql啟動時出現(xiàn)ERROR 2003 (HY000)問題的解決方法

    mysql啟動時出現(xiàn)ERROR 2003 (HY000)問題的解決方法

    這篇文章主要為大家詳細(xì)介紹了mysql啟動時出現(xiàn)ERROR 2003 (HY000問題的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 遠(yuǎn)程登錄MySQL服務(wù)(小白入門篇)

    遠(yuǎn)程登錄MySQL服務(wù)(小白入門篇)

    這篇文章主要為大家介紹了遠(yuǎn)程登錄MySQL服務(wù)(小白入門篇)
    2023-05-05
  • 詳解Mysql order by與limit混用陷阱

    詳解Mysql order by與limit混用陷阱

    這篇文章主要介紹了詳解Mysql order by與limit混用陷阱,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • 深入理解MySQL的數(shù)據(jù)庫引擎的類型

    深入理解MySQL的數(shù)據(jù)庫引擎的類型

    本篇文章是對MySQL的數(shù)據(jù)庫引擎的類型進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06

最新評論

巧家县| 萨迦县| 临朐县| 吴江市| 五指山市| 尉氏县| 浏阳市| 当涂县| 贵阳市| 遵义县| 巴里| 金湖县| 鄂托克前旗| 濮阳市| 阳东县| 玉溪市| 睢宁县| 鞍山市| 南皮县| 南宫市| 搜索| 南木林县| 定远县| 寿光市| 耒阳市| 双江| 河津市| 宁河县| SHOW| 岱山县| 从化市| 宁德市| 滦平县| 沧源| 华容县| 华池县| 海城市| 赣榆县| 凤城市| 中西区| 玛沁县|