五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動態(tài)

SQL年齡計算的兩種方法實例

發(fā)布日期:2022-07-15 19:23 | 文章來源:源碼之家

第一種方法:

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

測試語句:

DECLARE @birthdayDate DATE
DECLARE @endDate DATE
DECLARE @age INT
SET @birthdayDate ='2003-08-08'
SET @endDate = '2008-07-08'
SET @age = DATEDIFF(YEAR,@birthdayDate,@endDate)
SELECT @age AS 年齡

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

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

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

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

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

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

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

第二種方法:

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 DATE
DECLARE @endDate DATE
DECLARE @age FLOAT
SET @birthdayDate ='2003-08-08'
SET @endDate = '2008-07-08'
SET @age = FLOOR(DATEDIFF(DAY,@birthdayDate,@endDate)/365.25)
SELECT @age AS 年齡

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

算法釋義:

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

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

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

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

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

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

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

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

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

請讀者自行驗證。

總結(jié)

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

美國穩(wěn)定服務(wù)器

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部