亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

SQL年齡計(jì)算的兩種方法實(shí)例

瀏覽:172日期:2023-03-06 14:25:19
目錄
  • 第一種方法:
  • 第二種方法:
  • 總結(jié)

第一種方法:

用DATEDIFF函數(shù),DATEDIFF(YEAR,beginDate,endDate)

測試語句:

DECLARE @birthdayDate DATEDECLARE @endDate DATEDECLARE @age INTSET @birthdayDate ="2003-08-08"SET @endDate = "2008-07-08"SET @age = DATEDIFF(YEAR,@birthdayDate,@endDate)SELECT @age AS 年齡

執(zhí)行結(jié)果:

這種方法計(jì)算出的年齡,是個(gè)大概年齡,是“年”意義下的年齡,就是普羅大眾對(duì)年齡的理解下的年齡。

如果按“月”、“日”去計(jì)算,上述例子中的年齡其實(shí)是不足5歲的。

所以,當(dāng)我們寫的程序?qū)δ挲g的計(jì)算的精度要求比較高時(shí),

比如社保待遇的享受起始時(shí)間、退休金發(fā)放起始時(shí)間的計(jì)算,需要對(duì)年齡的精確計(jì)算;

政治生活中,干部的提拔、退職,也都涉及到年齡的精確計(jì)算;

民事刑事案件中當(dāng)事人年齡的計(jì)算,年齡的大小直接涉及到量刑的輕重,所以也需要對(duì)年齡進(jìn)行精確計(jì)算。

第二種方法:

FLOOR(DATEDIFF(DAY,@birthdayDate,@endDate)/365.25)

FLOOR函數(shù):返回小于或等于指定數(shù)值表達(dá)式的最大整數(shù)。又稱,向下取整函數(shù)。

(Returns the largest integer less than or equal to the specified numeric expression.)

PS:numberic expression,數(shù)值表達(dá)式 ,arithmeric expression,算術(shù)表達(dá)式。

FLOOR(4)=4,

FLOOR(4.2)=4,

FLOOR(4.5)=4,

FLOOR(4.9)=4.

測試語句:

DECLARE @birthdayDate DATEDECLARE @endDate DATEDECLARE @age FLOATSET @birthdayDate ="2003-08-08"SET @endDate = "2008-07-08"SET @age = FLOOR(DATEDIFF(DAY,@birthdayDate,@endDate)/365.25)SELECT @age AS 年齡

執(zhí)行結(jié)果:

算法釋義:

因?yàn)?年有一閏年會(huì)多1天,多除以0.25,相當(dāng)于把這一天平均攤到這4年,保證每4年的誤差歸零。

這個(gè)算法其實(shí)也有小小的誤差,除非出生不滿一歲就碰到閏月,先有一天再來遞減,會(huì)完全正確,不然的話在遇到閏年前會(huì)差一天,遇到閏年后變準(zhǔn)確,但是當(dāng)這個(gè)閏年補(bǔ)完4年差額在遇到下一個(gè)閏年之前又會(huì)差一天。也就是生日當(dāng)天程序會(huì)顯示沒滿周歲。

我們測試一下,比如2000、2004、2008年是閏年,但是2001、2002、2003、2005、2006、2007年都不是閏年。

假定李某在2001-02-08出生,我們用2002、2003、2004年生日當(dāng)天去計(jì)算年齡時(shí),都會(huì)發(fā)生誤差。

因?yàn)?004年是閏年,用2005年生日當(dāng)天去計(jì)算年齡就正確,過了2005年(2005-2001=4),我們用2006、2007、2008年生日當(dāng)天去計(jì)算年齡,也會(huì)發(fā)生誤差。

如果李某在2001-03-08(只要過了2月的一個(gè)日期就行)出生,

我們用2002、2003年生日當(dāng)天去計(jì)算年齡時(shí),會(huì)發(fā)生誤差。

但是用2004、2005年生日當(dāng)天去計(jì)算年齡就正確,過了2005年(2005-2001=4),我們用2006、2007年生日當(dāng)天去計(jì)算年齡,也會(huì)發(fā)生誤差。

用2008年生日當(dāng)天去計(jì)算年齡,就沒有誤差。

請(qǐng)讀者自行驗(yàn)證。

總結(jié)

到此這篇關(guān)于SQL年齡計(jì)算的文章就介紹到這了,更多相關(guān)SQL年齡計(jì)算內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: MsSQL
主站蜘蛛池模板: 久久婷婷五夜综合色频 | 国产一级视频免费 | 麻豆91国语视频 | 亚洲欧美一二三区 | 一级特黄特交牲大片 | 热99re久久精品2久久久 | 日韩不卡一区二区三区 | 尹人香蕉久久99天天拍欧美p7 | www.黄色网| 欧美亚洲国产激情一区二区 | 久久久久久久国产精品影院 | 国产精品免费一区二区区 | 亚洲精品中文字幕乱码影院 | 公妇乱淫日本免费观看 | 青草免费视频 | 亚洲精品国产三级在线观看 | 成 人色 网 站999 | 日本成人一区二区 | 日本人与黑人做爰视频网站 | 爱爱视频免费网站 | 久久澳门 | 欧美黄色大片免费 | 成人黄色在线观看 | 国产丝袜护土调教在线视频 | 在线观看欧洲成人免费视频 | 国产成人高清精品免费软件 | 黄色三级免费网站 | 成年人午夜 | 99视频都是精品热在线播放 | 精品三级三级三级三级三级 | 伊人影院综合网 | 国产成人一区二区精品非洲 | 中国一级特黄大片毛片 | 国产精品久久久免费视频 | 亚洲综合激情五月色播 | 国产麻豆91网在线看 | 一级日本特黄毛片视频 | 国产又污又爽又色的网站 | 久草在线香蕉 | 国产激情毛片 | 黄色一级播放 |