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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

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

Нужно в SQL-запрос добавить условие, чтобы выводились только те записи у которых в столбце Date только текущий год, прошлогодние не выводить. Формат даты в столбце 01.01.2015. Не могу понять как в SQL запросе сделать условие, чтобы до 2015-го записи не выводились.

Пытаюсь так, но выдает ошибку, ругается на Variant в запросе:

Код:
current_year:=Variant(YearOf(Now));

 sql_line:='SELECT * FROM Data where Company='+'"' + vname + '"'+' and Operator ='+'"' + op_name + '"' + ' and Variant(YearOf(Date))< current_year order by ID asc';
Dux вне форума Ответить с цитированием
Старый 08.01.2015, 17:25   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

СУБД какая?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.01.2015, 17:28   #3
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
СУБД какая?
Работаю через ADO с базами Access.
Dux вне форума Ответить с цитированием
Старый 08.01.2015, 17:38   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

а как у Вас в таблице поле с датой называется? Неужели Date ?!! o_O!
Это же ЗАРЕЗЕРВИРОВАННОЕ слово!

а вообще, попробуйте такой запрос
(в моём примере поле DateCompany имеет тип "Дата/Время")
Код:
SELECT *
  FROM Data 
    where YEAR([DateCompany]) = YEAR(Now);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.01.2015, 17:40   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

А что там Variant в теле запроса делает ' ... AND Year([date])>='+IntToStr(YearOf(Now))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.01.2015, 17:43   #6
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Serge, спасибо большое, конструкция работает как надо.

Код:
and Year(SOffDate)=Year(Now) order by ID asc
Dux вне форума Ответить с цитированием
Старый 08.01.2015, 17:52   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Dux, всегда пожалуйста!
Успехов в разработке!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как выполнить поиск по 2ум колонкам в SQL WinNet SQL, базы данных 3 11.12.2013 17:34
выполнить условие Артл Помощь студентам 12 13.06.2011 15:27
Как выполнить два подзапроса SQL Caster SQL, базы данных 3 06.12.2009 11:21
Как выполнить SQL запрос, записанный в Memo artemavd БД в Delphi 8 26.03.2009 17:41
Как выполнить условие по именам valerij Microsoft Office Excel 3 14.09.2008 21:55