-
jjda (10.01.13 16:59) [0]Здравсвуйте!
Подскажите, подалуйста...... В БД есть поле типа "Время" -там содержится время....Мне необходимо провести сравнение этого времени по каждоой из записей со временем "Сейчас"....Т.е. выделить те записи время в которых меньше чем время сейчас. Для даты я знаю как это сделать....Что-то типа:
ActiveZaproc:='Select * from O Where Cdate(C1)<=Cdate(:Data1) order by КОД';
{}
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(ActiveZaproc);
ADOQuery1.Parameters.ParamValues['data1']:=DateToSQLStr;
ADOQuery1.Active:=true;
Но функции Ctime в SQL нет! Как тогда быть? -
Виталий Панасенко (10.01.13 17:20) [1]Select * from O Where C1<=Date order by КОД
а тип БД указать можно? -
> Но функции Ctime в SQL нет! Как тогда быть?
Зависит от диалекта. Для TSQL - getdate(). Для FB - вроде Now. И т.д.
Естественно, это если ты с серверным временем сравнить хочешь. -
jjda (10.01.13 17:39) [3]БД у меня Access.... Пока ждал ответа и пробовал сам, получилось врое вот таким способом:ActiveZaproc:='Select * from 0 Where Cdate(C1)<=Cdate(:Time1)';
Frmmain.ADOQuery1.Close;
Frmmain.ADOQuery1.SQL.Clear;
Frmmain.ADOQuery1.SQL.Add(ActiveZaproc);
FrmMain.ADOQuery1.Parameters.ParamValues['time1']:=TimeToSQLStr;
Frmmain.ADOQuery1.Active:=true;
А в TimeToSQLStr делаю время с двоеточием-разделителем -
> Для даты я знаю как это сделать....Что-то типа:
для "тайма" то же самое, та же функция. на самом деле "тайм" это дробная часть даты (дня)
плюс, там еще есть функции (судя по Cdate у тебя access/jet) со временем например DateSerial (функции VB). -
> А в TimeToSQLStr делаю время с двоеточием-разделителем
нафига? почему бы просто дататайм-ом в параметр не передать?