Поиск в интервале дат

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

  1. Баламут

    Баламут Well-Known Member

    Регистрация:
    27 июл 2005
    Сообщения:
    76
    Симпатии:
    0
    В общем столкнулся со странной проблемой.

    В AdoQuery строка SQL выглядит так:
    [sql]SELECT * FROM Таблица where Дата >= :D 1 and Дата <= :D 2[/sql]

    В коде пишу:

    Adoquery1.Parameters[0].Value := DateTimePicker1.Date;
    Adoquery1.Parameters[1].Value := DateTimePicker2.Date;
    Adoquery1.ExecSQL;

    Ошибок никаких не вылетает, но и результата никакого! Т.е. не возвращается ни одной записи, а должны! Хотя в предыдущем проекте такой подход прекрасно работал...

    База локальная, Access
     
  2. Баламут

    Баламут Well-Known Member

    Регистрация:
    27 июл 2005
    Сообщения:
    76
    Симпатии:
    0
    Нашел. Оказывается ядро JET понимает только буржуйский формат даты.
    Т.е. пишем

    Adoquery1.Parameters[0].Value := FormatDateTime('mm/dd/yyyy', DateTimePicker1.Date);

    и все работает
     
  3. ????

    ???? Гость

    запрос удобней переписать используя between. imho так лучше выглядит
     
  4. Баламут

    Баламут Well-Known Member

    Регистрация:
    27 июл 2005
    Сообщения:
    76
    Симпатии:
    0
    В данном случае это не принципиально
     
  5. Barmutik

    Barmutik Гость

    Немного странно.. поидее наоборот должен работать во всех случах первый вариант .. а второй вариант только частность...
     
  6. Баламут

    Баламут Well-Known Member

    Регистрация:
    27 июл 2005
    Сообщения:
    76
    Симпатии:
    0
    Сам удивляюсь, т.к. как я уже говорил, в предыдущих проектах таких казусов небыло. Но в справке по JETSQL ( файле JETSQL40.CHM, идет вместе с офисом) так и написано, что понимается ТОЛЬКО такой формат. Рыть надо
     
Загрузка...

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