Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2008, 11:43   #1
Abbatik
Форумчанин
 
Аватар для Abbatik
 
Регистрация: 11.11.2007
Сообщений: 136
По умолчанию Запрос SQL (даты)

Здравствуйте, уважаемые!

У меня такой вопрос.

В таблице БД существует 3 поля (числовые). Они определяют дату рождения (день, месяц, год).

Подскажите, как описать запрос (SQL) SELECT для поиска дат начиная с одной даты, заканчивая другой (в Delphi).

Код:
Dd:=comboBox1.Text;
mm:=comboBox2.Text;
yy:=comboBox3.Text;

date_f:=StrToDAte(dd+’.’+mm+’.’+yy);

ADOQuery1.SQL.Clear;
ADOQuery1.sql.Add(……………..);

……..

Заранее спасибо!
ICQ - 446037211
Abbatik вне форума Ответить с цитированием
Старый 19.11.2008, 12:03   #2
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

А для чего date_f:=StrToDAte(dd+’.’+mm+’.’+yy) ; ???

Код:
ADOQuery1.sql.Text('select * from TABLE where (FIELD1 = "'+dd+'") and (FIELD2 = "'+mm+'") and (FIELD3 = "'+yy+'")');
И зачем хранить дату в трёх полях???
_SERGEYX_ вне форума Ответить с цитированием
Старый 19.11.2008, 12:33   #3
Abbatik
Форумчанин
 
Аватар для Abbatik
 
Регистрация: 11.11.2007
Сообщений: 136
По умолчанию

проблема в том, что мне нужно от одной даты до другой (больше одной и меньше другой).

Допустим, я сделал, чтобы дата хранилась в одном поле.

У меня выходит ошибка.
'Число содержит синтаксическую ошибку в выражении запроса...'

Код:
 SQL.Add('Select * from table1 where ((birth > '+bf+') and (birth < '+bt+'))');
!!!
ICQ - 446037211
Abbatik вне форума Ответить с цитированием
Старый 19.11.2008, 12:43   #4
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

синтаксическая ошибка скорее всего из-за кавычек.
И обязательно нужно указать больше_или_равно...
((birth >= "'+bf+'") and (birth <= "'+bt+'"))

А если написать так...
SQL.Add('Select * from table1 where birth between "' + bf + '" And "' + bt + '");
_SERGEYX_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Sql запрос из бд Novi4ek Помощь студентам 4 20.05.2008 14:04
SQL запрос Uomo БД в Delphi 17 23.04.2008 14:12
SQL-запрос Stenfit Помощь студентам 2 02.04.2007 18:35
SQL запрос на основе другого SQL запрса... Timoxa БД в Delphi 1 07.01.2007 18:15
SOL-запрос интервала даты и времени в Delphi DENIS_ БД в Delphi 5 23.12.2006 12:55