国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

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

這篇具有很好參考價值的文章主要介紹了MySQL根據(jù)出生日期計算年齡的五種方法比較。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

方法一

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

缺陷,當日期為未來日期時結(jié)果為0,而不是負數(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

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


改良后方法一和方法二

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

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


方法三

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

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


方法四

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

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

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


方法五

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

這樣計算出的年齡離實際的周歲最接近,但可能方法四最符合年齡定義。文章來源地址http://www.zghlxwxcb.cn/news/detail-667407.html

到了這里,關(guān)于MySQL根據(jù)出生日期計算年齡的五種方法比較的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 數(shù)據(jù)庫SQL函數(shù) 根據(jù)身份證號/出生年月 精確計算年齡(Oracle/MySQL)

    問題 根據(jù)身份證號統(tǒng)計年齡(18位) Oracle 思路 (1)Substr()函數(shù)在Oracle使用中表示被劫取的字符串表達式,截取字符串的內(nèi)容。 (2)To_date()函數(shù)可以轉(zhuǎn)換不同格式的日期,通過使用to_date函數(shù)可以將字符串類型的日期轉(zhuǎn)換成date格式。 (3)Months_between()函數(shù)反悔兩個日期之間的

    2024年02月11日
    瀏覽(37)
  • SQL由出生日期求年齡

    SQL由出生日期求年齡

    我們現(xiàn)在有一個學生關(guān)系表 通過語句: date_part(\\\'years\\\',age(生日))就可以求出年齡 ? 解析: age(timestamp) 從現(xiàn)在時間 current_date() 減去參數(shù)(時間戳),結(jié)果返回類型為Intrval(xxyears xxmos xx days) data_part(field TEXT, source TIMESTAMP/DATE/TIME/INTERVAL) 從時間戳或時間間隔中提取特點部分并返回

    2024年02月05日
    瀏覽(19)
  • 數(shù)據(jù)庫sql 根據(jù)身份證計算年齡段mysql、oracle

    數(shù)據(jù)庫sql 根據(jù)身份證計算年齡段mysql、oracle

    mysql: mysql通過函數(shù)可以精確到日 結(jié)果: Oracle: oracle只是年份相減,不夠精確 結(jié)果:

    2024年02月12日
    瀏覽(89)
  • 數(shù)組求和的五種方法

    // 數(shù)組求和的方法 let arr = [1,2,3,4,5] // 方法一:遞歸 function sum(arr){ const len = arr.length; if(len === 0) { return 0; } else if(len === 1){ return arr[0]; } else { return arr[0] + sum(arr.slice(1)); } } // 方法二:循環(huán) function sum(arr) { let s = 0; for(let i=0; iarr.length; i++){ s += arr[i] } return s; } // 方法三:map-reduce

    2024年02月10日
    瀏覽(23)
  • mysql中insert語句的五種用法

    insert語句是標準sql中的語法,是插入數(shù)據(jù)的意思。在實際應(yīng)用中,它也演變了很多種用法來實現(xiàn)特殊的功能,下面介紹在mysql數(shù)據(jù)庫中insert語句的五種用法。 語法: 如果插入多條數(shù)據(jù),需要寫多條sql。 語法: 多條數(shù)據(jù)1條sql即可,相較于方法1效率更高。 語法: 多條數(shù)據(jù)使用

    2023年04月25日
    瀏覽(15)
  • Hive導入數(shù)據(jù)的五種方法

    Hive導入數(shù)據(jù)的五種方法

    ????????在Hive中建表成功之后,就會在HDFS上創(chuàng)建一個與之對應(yīng)的文件夾,且 文件夾名字就是表名 ; 文件夾父路徑是由參數(shù)hive.metastore.warehouse.dir控制,默認值是/user/hive/warehouse; 也可以在建表的時候使用location語句指定任意路徑。 ????????不管路徑在哪里,只有把數(shù)

    2024年01月18日
    瀏覽(29)
  • Linux清空日志的五種方法

    在Linux中,有多種方法可以清空日志文件。下面是五種常用的方法: 使用truncate命令: truncate命令可以將文件截斷為指定大小或清空文件內(nèi)容。 示例:清空名為logfile.log的日志文件 使用cat命令重定向: cat命令可以將標準輸入重定向到文件,使用空內(nèi)容覆蓋文件內(nèi)容。 示例:

    2024年02月11日
    瀏覽(18)
  • 隱藏服務(wù)器IP的五種方法

    隨著互聯(lián)網(wǎng)的不斷發(fā)展,用戶們在日常使用通信設(shè)備訪問網(wǎng)站時的風險也在不斷增大。因為IP 地址對 Internet 上的每個人都是可見的。根據(jù) IP 地址,其他互聯(lián)網(wǎng)用戶可以跟蹤用戶的位置、用戶使用哪個提供商連接到互聯(lián)網(wǎng)等等。因此許多用戶都在尋求隱藏IP地址的方法,翔域云

    2024年02月07日
    瀏覽(25)
  • axios發(fā)送請求的五種方法詳解

    1、帶參數(shù) // 方式一: //請求的地址為 localhost:8080/url?id=1 ? ? ? ? axios.get(\\\'/url\\\', {params: {id: 1}}) ? // 方式二: // 請求的地址為 localhost:8080/url?id=2 axios({ ? ? methods: \\\'get\\\', ? ? url: \\\'/url\\\', ? ? params: { ? ? ? ? id: 2 ? ? } }) 2、不帶參數(shù) // 方式一:? axios({ methods: \\\'get\\\', url: \\\'/url\\\' }) // 方式二

    2024年04月25日
    瀏覽(24)
  • 小程序頁面之間數(shù)據(jù)傳遞的五種方法

    使用 wx.navigateTo() 時,在 url 中拼接,這種方法適用于數(shù)據(jù)量少的情況 跳轉(zhuǎn)前A頁面在 url 中拼接參數(shù),參數(shù)與路徑之間使用 ? 分隔,參數(shù)鍵與參數(shù)值用 = 相連,不同參數(shù)用 分隔; 跳轉(zhuǎn)到B頁面在生命周期函數(shù) onLoad 中接收 如果需要傳遞對象或數(shù)組,需先將對象或數(shù)據(jù)轉(zhuǎn)為JSON字符

    2024年02月10日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包