SQL Рассчитать возраст .use DatePart на DATE()) минус год рождения

Найдите номер звезды, имя, дату рождения и текущий возраст всех звезд, родившихся до 1 января 1925 года и живущих до сих пор. Вычислите возраст на основе текущего года (используйте DatePart на DATE()) минус год рождения.

Текущий запрос:

SELECT StarNum, FirstName,LastName,StarBorn,StarDied,Datepart("yyyy",StarBorn- date()) AS age
FROM Star
WHERE StarBorn < #01/01/1925# AND StarDied IS NULL

person user3670725    schedule 26.01.2015    source источник


Ответы (2)


Вместо Datepart используйте Datediff для вычисления age.

и формула, которую я использовал для вычисления age,

DATEDIFF("h",DOB,date())/8766

Попробуй это.

SELECT StarNum, FirstName,LastName,StarBorn,
       StarDied,DATEDIFF("h",StarBorn,date())/8766  AS age
FROM Star
WHERE StarBorn < #01/01/1925# AND StarDied IS NULL
person Pரதீப்    schedule 26.01.2015

Используйте это, чтобы получить более точный возраст человека. Я считаю, что это связано с днем ​​рождения.

select case 
            when cast(getdate() as date) = cast(dateadd(year, (datediff(year, '1996-09-09', getdate())), '1996-09-09') as date)
                then dateDiff(yyyy,'1996-09-09',dateadd(year, 0, getdate()))
            else dateDiff(yyyy,'1996-09-09',dateadd(year, -1, getdate()))
        end as MemberAge
go
person Komengem    schedule 03.02.2016