Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
2 / 2 / 0
Регистрация: 29.03.2015
Сообщений: 200

Фильтрация таблицы по полю типа дата

10.08.2016, 12:22. Показов 3014. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добрый день.
Мне нужно отфильтровать таблицу по полю типа дата.
Использую такую конструкцию:
Delphi
1
2
3
ADOQuery1.Filtered := False;
ADOQuery1.Filter := 'DateTimeEnd <= ' + QuotedStr(DateTimeToStr(Now));
ADOQuery1.Filtered := True;
При этом в результирующий набор попадают строки с пустым значением даты.
Подскажите, как решить эту проблему.
Спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.08.2016, 12:22
Ответы с готовыми решениями:

Фильтрация по полю типа boolean
Здраствуйте)Всех с Новым годом!!! Опять новые вопросы...делаю Библиотеку У меня есть столбец наличие(Есть книга,нет книги) который типа...

Фильтрация записей по полю Дата, имея только год
День добрый Суть проблемы, Имеется ADOTable с таблицей в таблице записи и есть поле Дата типа DateTime &quot;dd.mm.yyyy&quot; нужно...

SQL-запрос к этому полю типа 'SELECT * FROM [файл] WHERE [поле типа дата] > [
Суть проблемы: Есть база, созданная средствами VB (Visual Data Manager) в Access формате. В ней есть поле типа Data/Time. Так вот,...

11
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,659
Записей в блоге: 21
10.08.2016, 14:50
Delphi
1
and DateTimeEnd is not NULL
0
2 / 2 / 0
Регистрация: 29.03.2015
Сообщений: 200
11.08.2016, 12:12  [ТС]
Сделал так, как вы написали и получил сообщение:
"Аргументы имеют имеют неверный тип, выходят за пределы допустимого диапазона или
вступают в конфликт друг с другом."
0
5966 / 4542 / 1094
Регистрация: 29.08.2013
Сообщений: 28,151
Записей в блоге: 3
11.08.2016, 12:37
показывай код
0
2 / 2 / 0
Регистрация: 29.03.2015
Сообщений: 200
11.08.2016, 12:57  [ТС]
Весь код очень большой. Покажу только кусок, относящийся к этой операции:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 Query.SQL.Text :=
        'Create Table #Temp2 '+
        '( '+
        'Number CHAR(4), '+                    // номер карты
        'DateTimeBeg DateTime, '+           // Время начала
        'DateTimeEnd DateTime, '+           // Время окончания
        ')';
  Query.ExecSQL;
  Query.Free;
 
  ADOQuery1.ExecSQL;  // запрос, заполняющий таблицу данными.
 
  ADOQuery1.SQL.Text :=
    'Select * From #Temp2 '+
    'Order By ControllerName, Number1';
  ADOQuery1.Open;
 
           Filter := 'DateTimeEnd < ' + QuotedStr(DateTimeToStr(Now)) + ' and DateTimeEnd is not NULL';
           ADOQuery1.Filter := Filter;
           ADOQuery1.Filtered := False;
           ADOQuery1.Filtered := True;
На последнем операторе получил это сообщение.
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,659
Записей в блоге: 21
11.08.2016, 14:41
а поместить в SQL условие Where религия не велит?
0
2 / 2 / 0
Регистрация: 29.03.2015
Сообщений: 200
11.08.2016, 16:11  [ТС]
Я так и сделал. Это работает. Просто при этом нужно каждый раз по новой открывать таблицу.
Значит резюмируем: вариант установки фильтра для полей типа дата не работает.
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
11.08.2016, 17:09
Борис_С, работает, но вот использование фильтров вызывает массу вопрос... и самый главный - стоит ли вообще использовать фильтры, если проще это делать полноценным запросом - гораздо гибче решение, ИМХО...
0
11.08.2016, 17:26

Не по теме:

Цитата Сообщение от Борис_С Посмотреть сообщение
вариант установки фильтра для полей типа дата не работает.
это из серии "тараканы без ног не слышат"?

тут уже все вышли из использования фильтров и перешли в SQL запросы

0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,659
Записей в блоге: 21
11.08.2016, 20:37
напоминаю основной постулат
в реальной жизни много пользователей сидят в одной сети и в одной базе
сервер должен присылать ТОЛЬКО то, что нужно
того, что нужно, должно быть мало
если использовать фильтр, то каждый пользователь скачивает 100500 записей, а потом ВСЕ! они прогоняются сквозь этот фильтр на локальной машине, забирая гектар памяти...
сеть лежит, база лежит, программа фу какое гуамо
1
2 / 2 / 0
Регистрация: 29.03.2015
Сообщений: 200
12.08.2016, 10:58  [ТС]
C точки зрения чистой теории, наверное, вы правы, но моя задача довольно специфическая -
контроль доступа на предприятие. Ее пользователь - один человек - охранник.
Поэтому проблемы с нагруженностью сети здесь нет.
Я раньше всегда пользовался для фильтрации записей условием Where. А в этот раз
захотелось попробовать другой вариант. Как выяснилось, он не всегда работает, в отличии от Where.
Ну что же. Отрицательный результат - тоже результат.
В любом случае, спасибо за помощь.
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,659
Записей в блоге: 21
12.08.2016, 13:54
вы все делали правильно )
where - наше все ))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.08.2016, 13:54
Помогаю со студенческими работами здесь

Выборка по полю типа дата/время
Доброго времни суток всем. Столкнулся с такой проблемой, в базе данных есть поле типа дата/время, там записана только дата, т.е. например...

Фильтрация и поиск по связанному полю из другой таблицы
Здравствуйте не получается сделать фильтр по внешнему ключу. У меня есть таблицы: 1. родительская - жанр с полями код и название жанра ...

Фильтрация по полю типа boolean: работает только "ложь"
Вообщем странная ситуация: Клиент-серверная программа, на клиентской части есть датасет, делаю по нему фильтрацию: ...

Сортировка таблицы по полю логического типа
У меня в таблицу выводятся все поставки всем фирмам с которыми идет сотрудничество (дата, кол-во, и по списку). Нужно отсортировать ее по...

Получить доступ к полю типа "Дата"
Всем привет. Есть 2 вопроса: 1) &lt;input id=&quot;birthday&quot; name=&quot;birthday&quot; type=&quot;date&quot; onkeyup=&quot;checkText('birthday', '7')&quot;&gt; ...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru