Конференция "Базы" » SQL сравнить в запросе два времени: "в БД" и "сейчас"...как?
 
  • 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 КОД
    а тип БД указать можно?
  • Ega23 © (10.01.13 17:20) [2]

    > Но функции 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 делаю время с двоеточием-разделителем
  • sniknik © (10.01.13 17:46) [4]
    > Для даты я знаю как это сделать....Что-то типа:
    для "тайма" то же самое, та же функция. на самом деле "тайм" это дробная часть даты (дня)

    плюс, там еще есть функции (судя по Cdate у тебя access/jet) со временем например DateSerial (функции VB).
  • sniknik © (10.01.13 17:49) [5]
    > А в TimeToSQLStr делаю время с двоеточием-разделителем
    нафига? почему бы просто дататайм-ом в параметр не передать?
 
Конференция "Базы" » SQL сравнить в запросе два времени: "в БД" и "сейчас"...как?
Есть новые Нет новых   [119627   +41][b:0][p:0.001]