![]() |
|
|
|
|
#1
|
||||
|
||||
|
Народ, подскажите пожалуйста, как произвести поиск в интервале дат через sql
Код:
clm.Close;
clm.SQL.Clear;
clm.SQL.Text:='select *'+
' from my_live_rol'+
' where (date_b=)and(date_e is null)';Подскажите please |
|
#2
|
|||
|
|||
|
...WHERE date_b BETWEEN CONVERT(DATETIME, '11.03.2007', 104) AND сегодняшнее число спрашивать у базы данных (GETDATE()) или у Delphi (Today)?
104 означает формат dd.mm.yy (German). Если без функции Convert послать дату, то у БД может оказаться, напр., американский формат mm/dd/yy, т.е. месяцы и дни переставлены, и будет ошибка. Если границы дат не надо включать, то к минимальной границе надо прибавить один день, а от максимальной отнять (либо вместо Between использовать неравенства <, >) |
|
#3
|
||||
|
||||
|
Спасибо, большое : )
Подскажи мне пожалуста ещё ответ на один вопросик Если дата должна быть в интервале от dt и dt0 типа string, хранящие даты. Или как мне ещё сделать? С таблицы и формы беру по дате и в 3ьей хочу найти запись в интревале этих дат. Код:
dt:=datetostr(teku.FieldByName('NACH_CONP').AsDateTime);
dt0:=datetostr(form1.DateTimePicker2.date);![]() |
|
#4
|
|||
|
|||
|
Цитата:
Цитата:
Постарайся успокоиться, не нервничай, никто тебя не укусит. Ещё раз опиши задание (вопрос) |
|
#5
|
||||
|
||||
|
В общем, с таблицы я беру значение dt, а с формы получаю значение dt0, хочу организовать поиск в таблице my_live_rol по записям, у которых поле date_b находится в интнрвале от dt по dt0
|
|
#6
|
|||
|
|||
|
Код:
var dt: TDateField; sdt, sdt0: String; Код:
dt.DisplayFormat:= 'dd.mm.yyyy'; Код:
sdt:= dt.AsString;
...
sdt0:= FormatDateTime('dd.mm.yyyy', DateTimePicker2.Date);Код:
...WHERE date_b BETWEEN CONVERT(DATETIME, sdt, 104) AND CONVERT(DATETIME, sdt0, 104) Последний раз редактировалось AlexSku, 30.05.2007 в 11:33. |