Сравнить даты
Есть база созданная в MS Access. Два поля - одно символьное, второе дата. Не получается запрашивать информацию как дату. В SQL если использовать оператор Like, информация отбирается, а как дата WHERE (DT1 = '05.12.04') выдается ошибка. Задача состоит в том, что бы например за неделю до даты DT1 выдавался сигнал, то есть необходимо сравнивать текущую дату с DT1 из базы. Может я что-то не там рою?:(
ADOQuery1->SQL->Text = "select * from vnset where MakeDate = :dt";
ADOQuery1->Parameters->Items[0]->Value = Date();
ADOQuery1->Open();
Цитата:
Originally posted by Relax
я работаю с датой нормально... а твоя проблема в том, что пытаешься сравнивать поле типа Date со строкой... одиночными кавычками в SQL обозначаются строковые константы - отсюда и синтаксическая ошибка... чтобы сравнивать правильно - надо делать через параметры запроса. пишешь в запросе типа: "...where DT1 = :dt...", инициализируешь этот параметр и выполняешь запрос - все будет...
ADOQuery1->SQL->Text = "select * from vnset where MakeDate = :dt";
ADOQuery1->Parameters->Items[0]->Value = Date();
ADOQuery1->Open();
я работаю с датой нормально... а твоя проблема в том, что пытаешься сравнивать поле типа Date со строкой... одиночными кавычками в SQL обозначаются строковые константы - отсюда и синтаксическая ошибка... чтобы сравнивать правильно - надо делать через параметры запроса. пишешь в запросе типа: "...where DT1 = :dt...", инициализируешь этот параметр и выполняешь запрос - все будет...
ADOQuery1->SQL->Text = "select * from vnset where MakeDate = :dt";
ADOQuery1->Parameters->Items[0]->Value = Date();
ADOQuery1->Open();
И не забыть сбросить время в ноль если в базе длинный формат даты. Иначе сравнение будет работать не верно.