| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Foxpro/Clipper/Dbase > Запросы SQL в dBase |
| Автор: takedo 20.7.2005, 14:49 |
| Уважаемые программисты! Не могу никак додуматься сам о том, как же мне вытащить из базы данных типа dBase IV данные по условию! В базе есть поле POLE__0 - тип DATE. Хочется вытащить строки, удовлетворяющие дата в которых была бы больше некоторого значения. Пишу так: 1) SELECT * FROM db_te1 WHERE POLE__0 > '07-17-05' - несоответствие типов данных в условии отбора 2) SELECT * FROM db_te1 WHERE {fn CONVERT(SQL_VARCHAR,POLE__0,110)} > '07-17-05' - ошибка синтаксиса (пропущен оператор) в выражении запроса '>'07-17-05' Ну как же написать-то??? помогите!!! |
| Автор: ArnoldLane 20.7.2005, 23:24 | ||
| В винде дату можно представлять дату как угодно, и так - дд.мм.гг, и так - дд-мм-гг, но BDE подразумевает, что разделителем между днями, неделями и годами, должна быть точка. По крайней мере с таким запросом хлопот возникнуть не должно:
Возможноя я и не прав, или чего-то не понимаю. В любом случае зачем плодить проблемы на ровном месте. По-моему не трудно перед вставкой в условие запроса преобразовать строку '07-17-05' в строку '07.17.05'. |
| Автор: Guest 22.7.2005, 12:05 |
| "Слишком мало параметров. Требуется 1." - выдается вот это |
| Автор: Coocky 7.9.2005, 16:51 |
| Темы нужно создавать в соответсвующих разделах! Тема перенесена |
| Автор: Cashey 7.9.2005, 21:50 |
| Надо поставить оператор перевода из формата строки в формат Даты (например ctod() в фоксе или strtodate в паскале) |
| Автор: Dimchik 24.10.2005, 04:38 | ||
если под DOS то условие такое WHERE POLE__0 > {мм.дд.год(типа2005)} если под VFP7 то условие такое WHERE POLE__0 > {^год(типа2005).mm.dd} |
| Автор: Cashey 24.10.2005, 20:34 | ||
Это будет зависить от выставленного формата даты. Как я понял присоединение к базе идет не через Фокс, а через какой-то драйвер |