通過出生日期計算年齡

2021-04-01 06:12:17 字數 905 閱讀 5702

關於通過出生日期計算年齡的問題,通過baidu搜尋得到很多**貼了以下函式:

function calcage(datempdateofbirth as variant) as integer

calcage = int(datediff("y",datempdateofbirth,date())/365.25)

end function

但事實上以上方法法不準確

如2000-1-1 和2001-1-1比較得結果為1,但2001-1-1 和2002-1-1比較得結果為0

正確方法應為(vb):

datediff(dateinterval.year, dtrinfo("出生日期"), date.now) - 1 + int(format(date.now, "mmdd") >= format(datetime.parse(dtrinfo("出生日期")), "mmdd"))

注:msdn記載:datediff(interval, date1 , date2)函式中若 interval 被設定為dateinterval.year,則返回值只從 date1 和 date2 的年份部分算起。

如果直接在資料庫中計算,可參考以下語句

declare @birthday datetime

set @birthday = '19800615'

select datediff(yy, @birthday, getdate()) -

case

when month(@birthday) > month(getdate()) then 1

when month(@birthday) = month(getdate()) andday(@birthday) > day(getdate()) then 1

else 0

end

Oracle 通過出生日期計算年齡

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!select trunc months between sysdate,birth 12 as agefrom mytableselect trunc to char sysdate,yyyymmdd to char birth,yyyymmdd ...

WPF通過出生日期計算年齡

在wpf 中用datepicker控制元件輸入出生年月,按回車鍵自動計算年齡,如下 ui介面 後臺 注意,datepicker鍵盤事件要用previewkeydown而不用keydown事件 using system using system.windows using system.windows...

SQL Server 根據出生日期計算年齡

getdate 函式用於返回當前的日期和時間 datediff 函式返回兩個日期之間的時間。語法 datediff datepart,startdate,enddate startdate 和 enddate 引數是合法的日期表示式。datepart 引數可以是下列的值 datepart縮寫年 yy...

mysql根據出生日期計算年齡

select date format from days to days now to days birthday y 0 as age方法一,作者也說出了缺陷,就是當日期為未來日期時結果為0,而不是負數 這裡使用了5個函式和兩個運算子。select date format now y date f...

mysql出生日期計算年齡並查詢年齡

剛開始用mysql,需要用出生日期計算年齡,而且需要查詢符合這個年齡的使用者資訊。網路上介紹了不少顯示年齡的方法,但是要使用where語句查詢時,就失效了。在網路上找到了一位大神的回答,親測有用。題目 查詢年齡為33的使用者資訊 select customers.cusname,customers....