Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 20.06.2015
Сообщений: 23

Запрос с датами

24.09.2017, 18:51. Показов 1129. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, уважаемые форумчане! Помогите пожалуйста с запросом. Имеется таблица такого вида(значений огромное множество). Необходимо из столбца IssueDate вычесть Birthday и получившую разницу сравнить со значением – 45 лет 30 дней. Т.е. вывести всех у кого эта разница будет больше 45 лет и 30 дней. (IssueDate – Birthday > 45 лет лет 30 дней).
Миниатюры
Запрос с датами  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.09.2017, 18:51
Ответы с готовыми решениями:

Правильно сформировать запрос с датами
полностью описывать всю базу данных не буду...БД Автопарковка и автоуслуги. Смысл в том, что это есть дата въезда(dbo.тПарк.дата_въезда)...

Сложный запрос с датами - помогите!!!
Ребята, помогите с запросом: Значит, задача такая: есть БД с курсами колледжа, есть страница в которой пользователь выбирает с какой...

SQL запрос между 2мя датами
Здравствуйте, подскажите,пожалуйста, что не так в моём запросе необходимо сформировать отчет на количество выполненных ремонтов за...

5
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
24.09.2017, 21:38
Предложение where уже изучил?
0
21 / 16 / 6
Регистрация: 25.07.2017
Сообщений: 33
25.09.2017, 15:29
T-SQL
1
2
3
4
5
6
declare @source table (Birthday datetime, IssueDate datetime)
 
insert into @source (Birthday, IssueDate)
    values ('19360915', '20100520'),
            ('19821102', '20050430')
select * from @source where DATEDIFF(DAY, DATEADD(YEAR, 45, Birthday), IssueDate)>30
0
1 / 2 / 3
Регистрация: 24.06.2016
Сообщений: 47
25.09.2017, 20:32
Все вышеперечисленные методы ошибочны в части неполных лет
Я уже споткнулся на этом и ГУГЛ мне помог найти решение... (не помню автора)
используйте функцию по нахождению возраста

T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
CREATE FUNCTION [BR].[fCalcAge](@BirthDay datetime, @OnDate datetime)
RETURNS int
-- Функция вычисляет возраст(в полных годах) на заданную дату @OnDate
-- где @BirthDay - день рождения
AS
BEGIN
    IF @BirthDay IS NULL OR @OnDate IS NULL
    RETURN NULL;
  DECLARE @Result int
  SET @Result = YEAR(@OnDate) - YEAR(@BirthDay)
 
  -- день рождения в расчетном году
  DECLARE @BirthDate datetime
  SET @BirthDate = DATEADD (YEAR, @Result, @BirthDay)
 
 
  IF @BirthDate > @OnDate
    -- если он ещё не наcтупил
    SET @Result =  @Result - 1
 
  RETURN @Result
END
0
21 / 16 / 6
Регистрация: 25.07.2017
Сообщений: 33
26.09.2017, 10:26
Цитата Сообщение от demin Посмотреть сообщение
Все вышеперечисленные методы ошибочны в части неполных лет
Мне кажется, что к DATEADD это не относится, мы же добавляем полные года, а не их кусочки. DATEDIFF действительно всего лишь показывает количество пересечений и при ее использовании с неполными годами надо быть осторожным. В данном же запросе она применяется к дням, и, вроде бы, точность до часа не требуется.
Хотя можно отказаться от использования DATEDIFF, а просто прибавить к дате рождения с помощью DATEADD 45 лет, а потом 30 дней и сравнить полученную дату с нужной. Тут уж не будет неточности и можно сравнивать с точностью хоть до миллисекунды.
0
1 / 2 / 3
Регистрация: 24.06.2016
Сообщений: 47
26.09.2017, 10:39
Цитата Сообщение от demind74 Посмотреть сообщение
Мне кажется
Мне тоже так казалось пока на практике не получил ерунду.
Это не из головы взято.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.09.2017, 10:39
Помогаю со студенческими работами здесь

Запрос с датами
Здравствуйте. Напишите, пожалуйста, как написать запрос: выдать информацию..., where с момента определенной даты прошло более 3-х лет.

Запрос с датами
Доброго времени суток. Собственно в запросе нужно вывести количество больных по месяцам Написал запрос: SELECT ARKART.DATV,...

Запрос с датами
Доброго времени суток! Вообще такая проблема: нужен запрос в котором бы подсчитывалось количество дней между датами разных столбцов...

Запрос SQL с датами
Помогите, пожалуйста 1. Выбрать номера читательских билетов тех читателей, которые имеют задолженность более 4 месяцев. (важно!!!) ...

Запрос между датами
Добрый вечер! Кто-нибудь сможет подсказать: есть таблица в бд, в ней, например, 4 даты - 28.10.2017; 29.10.2017; 03.11.2017;...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru