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

Откуда:
Сообщений: 6
Имеется поле дата рождения студента student_birthdate в формате datetime
КАК ВЫВЕСТИ ВОЗРАСТ ФОРМАТЕ: 20 лет 6 месяцев?
15 апр 14, 16:13    [15885968]     Ответить | Цитировать Сообщить модератору
 Re: Вычисление возраста человека в виде количества лет и месяцев  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
datediff( month, student_birthdate, getdate() )/12 - лет
datediff( month, student_birthdate, getdate() )%12 - месяцев
15 апр 14, 16:14    [15885978]     Ответить | Цитировать Сообщить модератору
 Re: Вычисление возраста человека в виде количества лет и месяцев  [new]
Glory
Member

Откуда:
Сообщений: 104760
Vladimir Em
КАК ВЫВЕСТИ ВОЗРАСТ ФОРМАТЕ

А почему вы в каждой теме КРИЧИТЕ ?
15 апр 14, 16:15    [15885988]     Ответить | Цитировать Сообщить модератору
 Re: Вычисление возраста человека в виде количества лет и месяцев  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1528
Vladimir Em, для начала определись алгоритмом вычисления. Например, разница между 01.01.14 и 01.03.14 чему равна? Ровно 2 месяца или 1 мес. и 30 дней? А если не 01.03.14, а 28.02.14? Аргументируйте свой ответ.
15 апр 14, 16:16    [15885997]     Ответить | Цитировать Сообщить модератору
 Re: Вычисление возраста человека в виде количества лет и месяцев  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Месяцы считаются атомарными и текущий в количество не входит, насколько я знаю.
15 апр 14, 16:55    [15886281]     Ответить | Цитировать Сообщить модератору
 Re: Вычисление возраста человека в виде количества лет и месяцев  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1528
Владислав Колосов
Месяцы считаются атомарными и текущий в количество не входит, насколько я знаю.
Насколько я знаю, существует несколько разных алгоритмов такого расчета. Весь вопрос в том какой из них нужен топикстартеру.
15 апр 14, 16:57    [15886303]     Ответить | Цитировать Сообщить модератору
 Re: Вычисление возраста человека в виде количества лет и месяцев  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
Knyazev Alexey
datediff( month, student_birthdate, getdate() )/12 - лет
datediff( month, student_birthdate, getdate() )%12 - месяцев
Проверяем:
DECLARE @BirthDay DATE='20080228';
--DECLARE @BirthDay DATE='20080229';
WITH Numbers(N)AS(SELECT ROW_NUMBER()OVER(ORDER BY(SELECT 0))FROM master.dbo.spt_values)
SELECT N, D=DATEADD(DAY,N,@BirthDay), Y=DATEDIFF(MONTH,@BirthDay,DATEADD(DAY,N,@BirthDay))/12, M=DATEDIFF(MONTH,@BirthDay,DATEADD(DAY,N,@BirthDay))%12-1
FROM Numbers
ORDER BY N;
Нужна доработка, IMHO
15 апр 14, 17:11    [15886444]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить