|
Вопрос # 5 160/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
мне нужно выбрать диапазон дат и произвести фильтрацию,
вот что у меня есть:
DataModule3.ADOTable1.filter:='Dates>='+DateToStr(DateTimePicker1.Date)+' and Dates<='+DateToStr(DateTimePicker4.Date);
DataModule3.ADOTable1.filtered:=true;
суть вопроса заключается в том что, при фильтрации дат, конечную дату которуя я выбрал он не включает в дисапазон, может здесь ' and Dates<=' что не правильно? подскажите пож-та
 |
Вопрос задал: strannik23 (статус: Посетитель)
Вопрос отправлен: 6 апреля 2011, 13:24
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: min@y™
Здравствуйте, strannik23!
Цитата (strannik23):
и как же я их добавлю? (сутки)
Да хоть вот так:
DataModule3.ADOTable1.filter:='Dates>='+DateToStr(DateTimePicker1.Date)+' and Dates<='+DateToStr(DateTimePicker4.Date +
1.0); // +1 сутки
DataModule3.ADOTable1.filtered:=true;
 |
Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 6 апреля 2011, 14:33
Оценка за ответ: 5
Комментарий к оценке: спасибо, помгло, всё правильно
|
Мини-форум вопроса
Всего сообщений: 12; последнее сообщение — 7 апреля 2011, 06:07; участников в обсуждении: 3.
|
min@y™ (статус: Доктор наук), 6 апреля 2011, 13:27 [#1]:
А может тупо добавить сутки к конечной дате и не париться?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
strannik23 (статус: Посетитель), 6 апреля 2011, 13:31 [#2]:
и как же я их добавлю? (сутки)
|
|
strannik23 (статус: Посетитель), 6 апреля 2011, 14:41 [#3]:
спасибо большое, всё именно так как вы и написали
|
|
Мережников Андрей (статус: Абитуриент), 6 апреля 2011, 20:05 [#4]:
Попробуйте установить значение свойства time у DateTimePicker в 0.
|
|
min@y™ (статус: Доктор наук), 6 апреля 2011, 20:10 [#5]:
Цитата (Мережников Андрей):
Попробуйте установить значение свойства time у DateTimePicker в 0.
Интересно, а нафига?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Мережников Андрей (статус: Абитуриент), 6 апреля 2011, 20:24 [#6]:
Цитата (min@y™):
Интересно, а нафига?
Мне тоже интересно было бы узнать у разработчиков Delphi почему при использовании свойства Date играет роль значение свойства Time 
Просто была подобная ситуация, долго ломал голову над решением, помогло именно это - установить в 0 значение time.
|
|
min@y™ (статус: Доктор наук), 6 апреля 2011, 20:32 [#7]:
Цитата (Мережников Андрей):
Мне тоже интересно было бы узнать у разработчиков Delphi почему при использовании свойства Date играет роль значение свойства Time
Ну прально, потому что TDateTime - это условно TDate + TTime. Но в данном случае эффект обратный, не знаю почему.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Мережников Андрей (статус: Абитуриент), 6 апреля 2011, 20:51 [#8]:
Цитата (min@y™):
Ну прально, потому что TDateTime - это условно TDate + TTime.
Ну так там есть отдельное свойство DateTime, зачем они приплели time еще и в Date - не понятно.
В смысле, используя TDateTimePicker.Date надо иметь в виду, что в действительности будет использовано значение: TDateTimePicker.Date+TDateTimePicker.Time.
Поэтому и надо обнулять свойство time, если хочешь использовать только дату.
|
|
min@y™ (статус: Доктор наук), 6 апреля 2011, 21:01 [#9]:
Ну дык в вопросе-то используется DateToStr().
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Мережников Андрей (статус: Абитуриент), 6 апреля 2011, 21:19 [#10]:
значит в БД поле Dates типа DateTime и там дата и время вместе, наверное значение пишется из DateTimePicker. В этом вся ерунда с фильтром. Да, скорее всего так, поэтому и не входит последняя дата диапазона.
|
|
min@y™ (статус: Доктор наук), 6 апреля 2011, 21:24 [#11]:
Цитата (Мережников Андрей):
значит в БД поле Dates типа DateTime и там дата и время вместе, наверное значение пишется из DateTimePicker. В этом вся ерунда с фильтром. Да, скорее всего так, поэтому и не входит последняя дата диапазона.
Да, я тоже об этом подумал. Но, тем не менее, мой ответ подошёл. Решили проблему с чёрного хода.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Мережников Андрей (статус: Абитуриент), 7 апреля 2011, 06:07 [#12]:
Цитата (min@y™):
Решили проблему с чёрного хода
Лучше тогда заменить условие <= на <, чтобы не попали лишние записи.
|
8 апреля 2011, 11:58: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Delphi » Работа с компонентами и библиотеками модератором Ерёмин А.А.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|