[英]MySQL Age from Date of Birth (ignore nulls)
我正在嘗試從出生日期計算年齡,我可以使用此線程成功完成此操作 。 但是,我的某些DateOfBirth具有空值,並使用下面的公式,結果返回為“ 2012”而不是(空白/空)。
這是我的桌子:
10/06/1990
01/09/1998
*null*
*null*
02/16/1991
這是我想要的結果:
23
25
(blank)
(blank)
22
到目前為止,這是我的公式:
year(curdate())-year(user.DateOfBirth) - (dayofyear(curdate()) < dayofyear(user.DateOfBirth)) AS 'Age'
這實際上是我得到的:
23
25
2012
2012
22
以下是我為消除“ 2012”而嘗試做的一些事情,該操作導致某些加密的文本:
IF(user.DateOfBirth > '0001-01-01',AboveFormula,'')
CASE AboveFormula WHEN 2012 THEN '' ELSE AboveFormula END AS 'Age'
嘗試這個:
SELECT CASE
WHEN user.DateOfBirth IS NULL THEN ""
ELSE year(curdate())-year(user.DateOfBirth) - (dayofyear(curdate()) < dayofyear(user.DateOfBirth))
END AS 'Age'
FROM myTable
SELECT
CASE
WHEN DateOfBirth IS NULL THEN ""
ELSE
DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(DateOfBirth , '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(DateOfBirth , '00-%m-%d'))
END AS age
FROM myTable
SELECT IF(user.DateOfBirth IS NULL,"",
YEAR(CURDATE()) - YEAR(user.DateOfBirth)
- IF(DAYOFYEAR(CURDATE()) < DAYOFYEAR(user.DateOfBirth),1,0)
) as 'Age'
FROM user
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.