| 
| 
 | Вопрос # 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 » Работа с компонентами и библиотеками модератором Ерёмин А.А. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |