С Новым годом! Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/141: Рейтинг темы: голосов - 141, средняя оценка - 4.72
3 / 3 / 0
Регистрация: 22.06.2016
Сообщений: 61

Как вычислить возраст студента?

16.11.2016, 05:44. Показов 28331. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При помощи DATEDIFF
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.11.2016, 05:44
Ответы с готовыми решениями:

Запрос: вычислить средний возраст
Всем привет! Есть таблица на Microsoft SQL Server, в которой Имя, Фамилия и дата рождения, не могу создать запрос, что бы отобразить...

Словари: увеличить возраст конкретного студента на 1
Пусть список студентов представлен в виде структуры ,,]. Преобразуйте список в словарь вида: {№: , №:, №:} Увеличить возраст...

Вывести возраст студента и срок его обучения
Помогите пожалуйста, (Разработайте консольную прикладную программу, которая предлагает пользователю ввести с клавиатуры данные некоторого...

16
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
16.11.2016, 09:41
Ну и чего сложного DATEDIFF ( datepart , startdate , enddate )
Допустим возвраст в днях
SQL
1
DATEDIFF(DAY,'2008-06-05','2008-08-05')
Хочешь в годах пожалуйста
SQL
1
DATEDIFF(YEAR, '2012/04/28', '2014/04/28');
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
16.11.2016, 13:45
Цитата Сообщение от Игорь1986 Посмотреть сообщение
Хочешь в годах пожалуйста
T-SQL
1
DATEDIFF(YEAR, '2012/04/28', '2014/04/28'
А ничего, что 28-го месяца не бывает?
И какой получится возраст, если
T-SQL
1
DATEDIFF(YEAR, '20120428', '20140101'
?
0
3 / 3 / 0
Регистрация: 22.06.2016
Сообщений: 61
16.11.2016, 16:25  [ТС]
SQL
1
2
3
4
5
6
7
8
SELECT        TOP (100) PERCENT dbo.Faculties.Faculty, dbo.Specialties.Specialty, dbo.[GROUP].[GROUP], dbo.Students.Name, dbo.Nationalities.Nationality, dbo.Region.Region, dbo.Students.Age
FROM            dbo.Students INNER JOIN
                         dbo.Nationalities ON dbo.Students.Nationality = dbo.Nationalities.ID INNER JOIN
                         dbo.Region ON dbo.Students.Region = dbo.Region.ID INNER JOIN
                         dbo.[GROUP] ON dbo.Students.[GROUP] = dbo.[GROUP].ID INNER JOIN
                         dbo.Specialties ON dbo.[GROUP].Specialty = dbo.Specialties.ID INNER JOIN
                         dbo.Faculties ON dbo.Specialties.Faculty = dbo.Faculties.ID
ORDER BY dbo.Faculties.Faculty, dbo.Specialties.Specialty, dbo.[GROUP].[GROUP], dbo.Students.Name
Должен высчитывать из таблицы студенты, столбец DateBorn
0
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
16.11.2016, 16:45
Посмотри синтаксис пожалуйста, сначала идет год-месяц-число это первое, поэтому неправ ты
второе при такой записи возраст будет 2 года, так как произойдет округление до года, поэтому я и предложил в днях изначально, я привел пример а не то как сделать чтобы все красиво, что ТС надо будет то он и выберет)))

Добавлено через 2 минуты
dbo.Students.Age ты имел ввиду
Предположу DATEDIFF(yy,dbo.Students.Age,CURDATE()) AS DateBorn

Не по теме:


iap нафига было лезть в тему со своим огородом не разобравшись, считаешь себя умнее других

0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
16.11.2016, 16:46
Цитата Сообщение от Игорь1986 Посмотреть сообщение
Посмотри синтаксис пожалуйста, сначала идет год-месяц-число это первое, поэтому неправ ты
второе при такой записи возраст будет 2 года, так как произойдет округление до года, поэтому я и предложил в днях изначально, я привел пример а не то как сделать чтобы все красиво, что ТС надо будет то он и выберет)))

Добавлено через 2 минуты
dbo.Students.Age ты имел ввиду
Предположу DATEDIFF(yy,dbo.Students.Age,CURDATE()) AS DateBorn

Не по теме:


iap нафига было лезть в тему со своим огородом не разобравшись, считаешь себя умнее других

Надо не хамить, а учиться, умник!
А кто-то примет твою околесицу всерьёз.

Бекболот, конструкцию TOP(100) PERCENT ... ORDER BY MS SQL Server игнорирует.
В крайнем случае можно написать TOP(SELECT 100) PERCENT ... ORDER BY. Правда, непонятно, зачем.
0
3 / 3 / 0
Регистрация: 22.06.2016
Сообщений: 61
16.11.2016, 16:46  [ТС]
Данные о дате рождения в столбце DateBorn, возраст нужно вывести в столбце Age.
И ошибка вот такая выползает "Error in SELECT clause: expression near '('.
Missing FROM clause.
Unable to parse query text."
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
16.11.2016, 16:50
Цитата Сообщение от Бекболот Посмотреть сообщение
Данные о дате рождения в столбце DateBorn, возраст нужно вывести в столбце Age.
И ошибка вот такая выползает "Error in SELECT clause: expression near '('.
Missing FROM clause.
Unable to parse query text."
Ругается на скобки в конструкции TOP(100) ?
Их можно писать только начиная с версии SQL2005.
До этого - просто TOP 100.
Если версия SQL2000, то моё замечание про игнорирование 100% к этой версии не относилось.
0
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
16.11.2016, 16:50

Не по теме:


Самому тебе надо подучиться немного


DATEDIFF(yy,dbo.Students.DateBorn,CURDAT E()) AS Age
0
3 / 3 / 0
Регистрация: 22.06.2016
Сообщений: 61
16.11.2016, 17:14  [ТС]
У меня sql2014
и еще вот такая ошибка выползает "Incorrect sintax near 'yy' "
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
16.11.2016, 17:32
Цитата Сообщение от Игорь1986 Посмотреть сообщение
DATEDIFF(yy,dbo.Students.DateBorn,CURDAT E())
Поразмышляйте над результатом
T-SQL
1
2
select
 datediff(year, '20001115', '20161114');
0
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
16.11.2016, 20:59
И что 5 лет, вычисляет полные года
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
16.11.2016, 21:23
Цитата Сообщение от Игорь1986 Посмотреть сообщение
И что 5 лет, вычисляет полные года
Какие 5 лет? А что на самом деле вычисляет datediff, прочтите в документации.

Можно себе представить, что Игорю1986 заказали разработать ИС для военкомата.
В результате применения им авторской методики определения возраста призывников, весеннему призыву 2017 г. будут подлежать все, родившиеся в 1999 г., вне зависимости от дня и месяца рождения...
0
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
17.11.2016, 09:31
Хорошо давайте думать, может и я неправ,тогда может как то так
SQL
1
SELECT TIMESTAMPDIFF(YEAR,dbo.Students.DateBorn,curdate())
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
17.11.2016, 11:23
Игорь1986, разве мы о MySQL беседуем?
T-SQL
1
datediff(year, dbo.Students.DateBorn, getdate()) - case when datepart(dayofyear, dbo.Students.DateBorn) > datepart(dayofyear, getdate()) then 1 else 0 end
0
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
17.11.2016, 11:42
Ну я хотел по другому
SQL
1
 DATEDIFF(YEAR,dbo.Students.DateBorn, GETDATE())+(SIGN(DATEDIFF(DAY,dbo.Students.DateBorn, DATEADD(YEAR, YEAR(dbo.Students.DateBorn)-YEAR(GETDATE()), GETDATE())))-1)/2;
0
3 / 3 / 0
Регистрация: 22.06.2016
Сообщений: 61
17.11.2016, 15:24  [ТС]
Спасибо , ребята. У меня получилось. Ошибка была в пропущенной запятой
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.11.2016, 15:24
Помогаю со студенческими работами здесь

Есть масса каждого студента группы. Вычислить среднюю массу студента в группе
Блок-схема и программа Есть масса каждого студента группы. Вычислить среднюю массу студента в группе! Нужно написать программу,...

Вывести на экран фамилию самого молодого студента и его возраст.
Помогите с задачами. 1.Дан текстовый файл, содержащий данные о студентах: фамилия студента, возраст. Вывести на экран фамилию самого...

Вывести на экран фамилию самого старшего студента и средний возраст для всех студентов
Создать файл, элементами которого являются сведения о студентах: фамилия, возраст, место проживания. Вывести на экран фамилию самого...

Для студентов 1 курсов - Курсовая (создать структуру, элементами которой являются фамилия студента и его возраст)
Написать программу, в которой необходимо создать структуру, элементами которой являются фамилия студента и его возраст. Объявить массив...

Как вычислить возраст по дате рождения
Здравствуйте, это снова я :curtsy: подскажите пож-ста, у меня нарисовалась проблемка, есть две формы Основная в ней подчиненная форма где...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru