Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Определить возраст по дате рождения  [new]
Нэлли
Guest
В БД есть дата рождения человека, нужно определить его возраст.

SELECT DATEDIFF(YEAR,birth,GETDATE()),* FROM pip

Проблемка - например день рождения только через месяц, а возраст выводится как бы округлённым вверх.
А http://www.kobzarev.com/programming/determination-of-age-by-date-of-birth-in-mysql.html не работает на SQLServer...
4 авг 14, 01:14    [16393997]     Ответить | Цитировать Сообщить модератору
 Re: Определить возраст по дате рождения  [new]
aleks2
Guest
declare @birth date = '20130901'

SELECT DATEDIFF(YEAR,@birth,GETDATE())
     , 'НЕЗАТЕЙЛИВО' = DATEDIFF(MONTH,@birth,GETDATE())/12
     , 'ТОЧНО' = case when dateadd(YEAR, DATEDIFF(YEAR,@birth,GETDATE()), @birth ) > GETDATE() then DATEDIFF(YEAR,@birth,GETDATE()) - 1 else DATEDIFF(YEAR,@birth,GETDATE()) end
4 авг 14, 05:47    [16394104]     Ответить | Цитировать Сообщить модератору
 Re: Определить возраст по дате рождения  [new]
enakenenaken
Member

Откуда: Нижний Новгород
Сообщений: 325
Нэлли,

DECLARE @date DATETIME
	,	@days_count float
SET @date = '19931029'

SELECT  DATEDIFF(month, @date, GETDATE())/12 
4 авг 14, 08:05    [16394161]     Ответить | Цитировать Сообщить модератору
 Re: Определить возраст по дате рождения  [new]
enakenenaken
Member

Откуда: Нижний Новгород
Сообщений: 325
Нэлли,

DECLARE @date DATETIME

SET @date = '19931029'

SELECT  DATEDIFF(month, @date, GETDATE())/12 
4 авг 14, 08:05    [16394163]     Ответить | Цитировать Сообщить модератору
 Re: Определить возраст по дате рождения  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Определение возраста по дате рождения и тек.дате
Как быстро определить сколько лет человеку по дате рождения

SELECT
 DATEDIFF(YEAR,@Birthday, GETDATE())+
 (SIGN(DATEDIFF(DAY,@Birthday, DATEADD(YEAR, YEAR(@Birthday)-YEAR(GETDATE()), GETDATE())))-1)/2;
4 авг 14, 09:33    [16394288]     Ответить | Цитировать Сообщить модератору
 Re: Определить возраст по дате рождения  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
enakenenaken
Нэлли,

DECLARE @date DATETIME

SET @date = '19931029'

SELECT  DATEDIFF(month, @date, GETDATE())/12 
Возраст определяется не месяцем рождения, а днём рождения
4 авг 14, 09:34    [16394292]     Ответить | Цитировать Сообщить модератору
 Re: Определить возраст по дате рождения  [new]
enakenenaken
Member

Откуда: Нижний Новгород
Сообщений: 325
iap,

Разумеется
4 авг 14, 09:49    [16394329]     Ответить | Цитировать Сообщить модератору
 Re: Определить возраст по дате рождения  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
enakenenaken
iap,

Разумеется
А у Вас получится один и тот же результат для любого дня октября 1993 года?
4 авг 14, 11:34    [16394882]     Ответить | Цитировать Сообщить модератору
 Re: Определить возраст по дате рождения  [new]
aleks2
Guest
iap
enakenenaken
iap,

Разумеется
А у Вас получится один и тот же результат для любого дня октября 1993 года?


Ну шо ты привязался, канешно, при выдаче паспорта DATEDIFF(MONTH,@birth,GETDATE())/12 не совсем канает.
Но показывать на веб-форуме возраст - вполне.
4 авг 14, 12:02    [16395096]     Ответить | Цитировать Сообщить модератору
 Re: Определить возраст по дате рождения  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
aleks2
iap
пропущено...
А у Вас получится один и тот же результат для любого дня октября 1993 года?


Ну шо ты привязался, канешно, при выдаче паспорта DATEDIFF(MONTH,@birth,GETDATE())/12 не совсем канает.
Но показывать на веб-форуме возраст - вполне.
Это я ещё не привязывался!
Привет, Алекс!
4 авг 14, 12:13    [16395175]     Ответить | Цитировать Сообщить модератору
 Re: Определить возраст по дате рождения  [new]
vikkiv
Member

Откуда: EU
Сообщений: 2961
тогда возможно в днях например через
DECLARE @d DATE;SET @d='19931029';select (datediff(d,@d,getdate())+0.0)/365.25
4 авг 14, 22:45    [16398839]     Ответить | Цитировать Сообщить модератору
 Re: Определить возраст по дате рождения  [new]
vikkiv
Member

Откуда: EU
Сообщений: 2961
хотя +0.0 наверное лишнее
4 авг 14, 22:47    [16398848]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить