Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.08.2018, 10:15
Ekler1 Ekler1 вне форума
Новичок
 
Регистрация: 12.06.2017
Сообщения: 90
Версия Delphi: RAD Studio XE7
Репутация: 10
По умолчанию Проблемы с фильтром по бд

Доброе утро, помогите разобраться с фильтром.

Код:
begin
with zquery1 do
  begin
    Close;
    sql.clear;
    zquery1.SQL.Text:='SELECT * FROM ZakazKL WHERE datecreate BETWEEN :date_b AND :date_e ORDER BY datecreate';
zquery1.Params.ParamByName('date_b').Value := DateOf(DateTimePicker1.DateTime);
zquery1.Params.ParamByName('date_e').Value := DateOf(DateTimePicker2.DateTime);
zquery1.Open;
    open;
end;
end;

Вот код, есть два DateTimePicker когда я выбираю фильтр с 16.08.2018 по 18.08.2018 фильтр показывает даты с 17.08.2018
раньше база была Access все нормально работало, сейчас перешел на SQLite и вот печаль(
Ответить с цитированием
  #2  
Старый 27.08.2018, 11:00
F.o.x. F.o.x. вне форума
Прохожий
 
Регистрация: 16.06.2018
Сообщения: 14
Версия Delphi: 7, XE3
Репутация: 10
По умолчанию

Да, у каждой СУБД свои представления о правильных SQL выражениях.

Можно попробовать так:
Код:
zquery1.Params.ParamByName('date_b').Value := DateOf(DateTimePicker1.DateTime-1);
Ответить с цитированием
Этот пользователь сказал Спасибо F.o.x. за это полезное сообщение:
Ekler1 (27.08.2018)
  #3  
Старый 27.08.2018, 11:10
Ekler1 Ekler1 вне форума
Новичок
 
Регистрация: 12.06.2017
Сообщения: 90
Версия Delphi: RAD Studio XE7
Репутация: 10
По умолчанию

Цитата:
Сообщение от F.o.x.
Да, у каждой СУБД свои представления о правильных SQL выражениях.

Можно попробовать так:
Код:
zquery1.Params.ParamByName('date_b').Value := DateOf(DateTimePicker1.DateTime-1);
Спасибо большое, работает!
Ответить с цитированием
  #4  
Старый 28.08.2018, 10:55
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Цитата:
Сообщение от Ekler1
Спасибо большое, работает!
Несколько не так. В Акцесе как такового формата дата нет. Дата всегда содержит время и акцес просто отсекает при отображении информацию о времени и задавая дату 01.01.2018 вы на самом деле задавали 01.01.2018 00:00:01, что для обычных сравнений ни на что не влияло, но вот при указании диапазона такое представление может неприятно удивить результатом. Задавая диапазон 01.01.2018 - 01.01.2018 вы предполагаете получить суточные данные, а получите секундные, т.е. те что попали в 01.01.2018 00:00:01
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение:
Ekler1 (28.08.2018)
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:22.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter