|
|
|
как правильно написать в where "date > 01/01/2007"?
|
|||
|---|---|---|---|
|
#18+
База dBase III, пишу небольшую программу на С. Базу подключаю через ODBC: Код: plaintext Все нормально пашет, но с полем типа "DATE" не могу разобратся. Нужно выбрать записи с определенной датой, например 25.09.2007. Соответственно пишу нечто: Код: plaintext DATA - это поле типа DATE. Получаю пустой результат. Когда пишу: Код: plaintext Получаю все записи, даже с 21.09.2007 Также пробовал всяческие варианты: Код: plaintext Код: plaintext Код: plaintext Код: plaintext Код: plaintext Код: plaintext В ответ получаю ошибку синтаксиса... Подскажите, пожалуйста, в чем проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2007, 10:53 |
|
||
|
как правильно написать в where "date > 01/01/2007"?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2007, 11:04 |
|
||
|
как правильно написать в where "date > 01/01/2007"?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext [Microsoft][Драйвер ODBC dBase] Несоответствие типов данных в выражении условия отбора Код: plaintext 1. 2. Я не понял куда вставлять? До "where"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2007, 11:12 |
|
||
|
как правильно написать в where "date > 01/01/2007"?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2007, 11:20 |
|
||
|
как правильно написать в where "date > 01/01/2007"?
|
|||
|---|---|---|---|
|
#18+
AlexeyGYБаза dBase III, пишу небольшую программу на С. Базу подключаю через ODBC: Код: plaintext Все нормально пашет, но с полем типа "DATE" не могу разобратся. Нужно выбрать записи с определенной датой, например 25.09.2007. Соответственно пишу нечто: Код: plaintext DATA - это поле типа DATE. Получаю пустой результат. Когда пишу: Код: plaintext Получаю все записи, даже с 21.09.2007 Также пробовал всяческие варианты: Код: plaintext Код: plaintext Код: plaintext Код: plaintext Код: plaintext Код: plaintext В ответ получаю ошибку синтаксиса... Подскажите, пожалуйста, в чем проблема? Так Вам же понятно сказал драйвер - проблема в синтаксисе! Точнее в том, что драйвер не может преобразовать строку "22.09.2007" в дату. Можно попробовать следующие варианты: 1. DATE(Год,Месяц,День) (скорее всего, подойдет только для VFP ODBC) 2. {d'22.09.2007'} (взято из: MDAC 2.5 SDK - ODBC Programmer's Reference Chapter 8: SQL Statements ) 3. CTOD(22.09.2007) (скорее всего, подойдет только для VFP ODBC) 4. {^год-месяц-день} (скорее всего, подойдет только для VFP ODBC) 5. #22.09.2007# и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2007, 11:21 |
|
||
|
как правильно написать в where "date > 01/01/2007"?
|
|||
|---|---|---|---|
|
#18+
Если мой предыдущий вариант не подойдет, то можно еще вот так: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2007, 11:29 |
|
||
|
как правильно написать в where "date > 01/01/2007"?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext Ошибка в синтаксисе[пропущен оператор] в выражении 'DATA =' Код: plaintext 1. 2. 3. 4. 5. 6. 7. Ошибка в синтаксисе. Единственное, что работает, как альтернатива: Код: plaintext 1. Но в этом варианте писанины больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2007, 11:30 |
|
||
|
как правильно написать в where "date > 01/01/2007"?
|
|||
|---|---|---|---|
|
#18+
Упс, закрывающую кавычку после 2007 пропустил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2007, 11:31 |
|
||
|
как правильно написать в where "date > 01/01/2007"?
|
|||
|---|---|---|---|
|
#18+
Дата обрамляется символами # и разделителем служит наклонная черта. Код: plaintext Но, вообще-то, лучше передавать константы как параметры. Не уверен в синтаксисе С, но обычно параметры передаются через вопросительный знак Код: plaintext Где varDate - это переменная типа Date (если там такая есть) в собственно C ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2007, 13:32 |
|
||
|
как правильно написать в where "date > 01/01/2007"?
|
|||
|---|---|---|---|
|
#18+
2AlexeyGY А по-моему, вы просто используете глючный ODBC драйвер. Может возьмете все-таки более распространенный MS Visual FoxPro Driver? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 15:21 |
|
||
|
как правильно написать в where "date > 01/01/2007"?
|
|||
|---|---|---|---|
|
#18+
Делал на С запрос к DBF базе через ОДБС(подключался через Foxpro драйверы). Незная foxpro, тоже возился с датой. Вот так работает, например: WHERE DATE Between {m1/d1/y1} AND {m2/d2/y2} m, d, y - понятно что. Например {01/02/2007} ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2007, 03:13 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34823605&tid=1588679]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 356ms |

| 0 / 0 |
