Y
YuryD
Господа!
Ни где не могу встретить примера, как сделать выборку из БД MS Access записей, в пределах от одного dd/mm/yyyy hh:mm:ss до другого dd/mm/yyyy hh:mm:ss.
Я написал запрос:
"SELECT * FROM report WHERE aDate >= DateValue('" + FormatDateTime("dd/mm/yyyy hh:mm:ss",Start) + "') AND aDate <= DateValue('" + FormatDateTime("dd/mm/yyyy hh:mm:ss",End) + "') ORDER BY aDate";
Но в ответ возвращаются все записи, начинающиеся с dd/mm/yyyy 00:00:00 переменной Start и до dd/mm/yyyy 00:00:00 переменной End. Такое впечатление, будь-то значения поля времени просто игнорируются и заменяются нулями, хотя я проверял, там стоят не нули! Результат аналогичный, даже если я вообще вообще убираю время, т.е.
"SELECT * FROM report WHERE aDate >= DateValue('" + FormatDateTime("dd/mm/yyyy",Start) +
"') AND aDate <= DateValue('" + FormatDateTime("dd/mm/yyyy",End) + "') ORDER BY aDate";
Оба этих запроса возвращаются одни и те же записи. Но во втором запросе это объяснимо, а в первом - непонятно...
P.S. Работаю в Builder C++ 6.
Ни где не могу встретить примера, как сделать выборку из БД MS Access записей, в пределах от одного dd/mm/yyyy hh:mm:ss до другого dd/mm/yyyy hh:mm:ss.
Я написал запрос:
"SELECT * FROM report WHERE aDate >= DateValue('" + FormatDateTime("dd/mm/yyyy hh:mm:ss",Start) + "') AND aDate <= DateValue('" + FormatDateTime("dd/mm/yyyy hh:mm:ss",End) + "') ORDER BY aDate";
Но в ответ возвращаются все записи, начинающиеся с dd/mm/yyyy 00:00:00 переменной Start и до dd/mm/yyyy 00:00:00 переменной End. Такое впечатление, будь-то значения поля времени просто игнорируются и заменяются нулями, хотя я проверял, там стоят не нули! Результат аналогичный, даже если я вообще вообще убираю время, т.е.
"SELECT * FROM report WHERE aDate >= DateValue('" + FormatDateTime("dd/mm/yyyy",Start) +
"') AND aDate <= DateValue('" + FormatDateTime("dd/mm/yyyy",End) + "') ORDER BY aDate";
Оба этих запроса возвращаются одни и те же записи. Но во втором запросе это объяснимо, а в первом - непонятно...
P.S. Работаю в Builder C++ 6.