Фильтр По Полю Типа Tdatatime

Тема в разделе "Delphi - Базы данных", создана пользователем -, 7 сен 2012.

  1. Гость

    Здравствуйте!
    Есть Access-овская база с обрабатываемой таблицей. В структуре записи присутствует поле с полным форматом даты, к примеру, 07-09-2012 13:30:35. Необходимо установить фильтр на ADOTable чисто по дате. Т.е. в таблице много записей за разные даты и каждая с полным набором часов, минут, секунд, милисекунд. Фильтр должен устанавливаться по указываемой дате. Как такое реализовать? Чтоб фильтр брался чисто по дате, а время отсекалось
     
  2. sinkopa

    sinkopa Well-Known Member

    Регистрация:
    17 июн 2009
    Сообщения:
    344
    Симпатии:
    9
    Не вижу проблем. Что мешает выбрать с нуля часов по 24:00 ? ;)
    Таблица напрямую фильтруется? или через ADODataSet?
    хотя собственно одинаково...
    Код (Delphi):
    var
    FieldName : AnsiString; // Имя поля по которому фильтруем
    DateStart : AnsiString; // Начало дня
    DateEnd  : AnsiString; // Конец дня
    FilterStr : AnsiString; // Итоговая строчка для фильтра
    //....
    begin
    FieldName := 'MyDateTimeFileld';
    DateStart := FormatDateTime('dd-mm-YYYY 00:00:00',DateTimePicker1.Date);
    DateEnd  := FormatDateTime('dd-mm-YYYY 23:59:59',DateTimePicker1.Date);

    FilterStr := FieldName + '>=' + DateStart + ' AND '+ FieldName + '<=' + DateEnd;
    //или так FilterStr := Format('%s>=%s AND %s<=%s',[FieldName,DateStart,FieldName,DateEnd]);

    // вот такая строка получится "MyDateTimeFileld>=07-09-2012 00:00:00 AND MyDateTimeFileld<=07-09-2012 23:59:59"

    ADOTable1.Filter := FilterStr; // применяем фильтр

    { если через ADODataSet

    ADODataSet1.Filter := FilterStr;
    ADODataSet1.Filtered := True; }

    end;
     
  3. Cambur

    Cambur Active Member

    Регистрация:
    20 июн 2010
    Сообщения:
    27
    Симпатии:
    0
    может поможет...
    это строка из query, для БД Postgres
    order by (extract(mons from "cumple")), (extract(day from "cumple")),
    не факт, что Access поймёт что-нибудь подобное, конечно...
     
Загрузка...

Поделиться этой страницей