Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.07.2015, 11:31   #1
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию SQL-запрос, сравнение дат, периодов

Очень нужна помощь специалиста в SQL. Работаю через ADOQuery с базой Access. В базе данных есть два столбца с датами start_date и end_date. Необходимо вывести те записи, период которых между start_date и end_date затрагивает или покрывает заданный месяц.

К примеру, задан месяц июнь 2015-го года, нужно выбрать записи, в которых:
1. Месяц Start_date соответствует заданному (июнь)
либо
2. Месяц End_date соответствует заданному (июнь)
либо
3. Месяц июнь находится между двумя датами start_date и end_date

Большая просьба помочь, а то проект затормозился, вторые сутки вожусь безрезультатно. Заранее огромное спасибо.
Dux вне форума Ответить с цитированием
Старый 12.07.2015, 12:06   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

start_date<=<<последнее число месяца>> and end_date>=<<первое число месяца>>
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.07.2015, 13:55   #3
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Код:
sql_line:='SELECT * FROM Data WHERE StartDate<='+end_month_date+' and EndDate>='+beg_month_date;
Сделал запрос, но как его правильно оформить? end_month_date и beg_month_date типа TDateTime - sql их не понимает. А дата из колонок StartDate и EndDate вообще не берется, т.е. в тексте запроса не происходит сравнения дат - наверное из-за несоответствия типов..? Как правильно записать?
Dux вне форума Ответить с цитированием
Старый 12.07.2015, 22:48   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Как правильно записать?
Как я понимаю, вдруг, речь идёт про Delphi?!
Вам нужно использовать параметрический запрос (запрос с параметрами).
даты передавать через параметры.
поиском примеры на форуме легко найдёте.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.07.2015, 20:09   #5
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Спасибо, посмотрю
Dux вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL фильтр и сравнение двух дат demiancz БД в Delphi 10 26.12.2013 15:36
Высчитывание и подстановка нескольких дат в sql запрос HellFosa C# (си шарп) 2 19.11.2012 09:33
Sql запрос диапазона дат Maksimuz БД в Delphi 7 14.01.2011 23:31
SQL запрос в MYSQL для интервала дат slips SQL, базы данных 7 05.06.2010 21:41
Сравнение дат! RSmile БД в Delphi 0 28.04.2010 20:40