오히려 매장보다 모두 DateOfBirth
및 Age
, 나이를 계산 테이블에 computed column을 만들 당신이 지속 할 경우
-- Create Table with computed column
CREATE TABLE [dbo].[CCtest]
(
[id] [int] not NULL,
[DateOfBirth] [datetime] NULL,
-- etc...
[Age] AS datediff(year, DateOfBirth, getdate())
)
GO
계산 된 값은 PERSISTED
키워드를 추가하십시오. 당신이 원하는 경우
하나의 가능성은, 나이 년 개월 표시 :
[AgeInDays] AS datediff(day, DateOfBirth, getdate())
후 년 개월에 AgeInDays
형식을 당신의 테이블에 뷰를 작성합니다.
이
create view vwCCtestAge
AS
select
id,
dateofbirth,
cast([AgeYears] as varchar(4)) + ' years ' +
cast(datediff(month, DateOfBirth, getdate())
- case when (AgeYears > 0) then (AgeYears - 1)*12
else 0
end as varchar(4)) + ' months' as Age
from cctest2
GO
왜 모두를 저장하는
[당신은 경계 경우 ... 확인해야합니다] : 여기
는[AgeYears]
의 계산 된 열을 사용하여, 또 다른 가능성입니까? DOB를 저장하고 나이를 계산해야합니다. –