Форум: "Базы";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];
ВнизINSERT INTO MYTABLE (DateTimeField) VALUE ( Найти похожие ветки
← →
ikis (2003-06-27 15:43) [0]Ответьте, пж-та, на вопрос: как с помощью SQL записать в таблицу текущее дату-время (напр. как subj)?
← →
MsGuns (2003-06-27 16:04) [1]
With Query1 do
begin
SQL.Clear;
SQL.Add("INSERT INTO TABLE1");
SQL.Add(" (FlDate");
SQL.Add(" VALUES (:pDt)");
ParamByName("pDt").AsDateTime := NOW;
try
Prepare;
ExecSQL;
except
ShowMessage("O-o-o-opsss !");
exit;
end;
end;
← →
Anatoly Podgoretsky (2003-06-27 16:12) [2]Смотри в справке по Access 2000 какой должен быть формат у дат или что проще через параметр, см. выше
← →
ikis (2003-06-27 16:22) [3]Спасибо, спасибо...
Вот, придумал:
ADOCommand.Execute("INSERT INTO MYTABLE (DateTimeField) VALUES (Date()&" "&Time());
IMHO, немного изящнее, чем через параметр ;о)
← →
sniknik (2003-06-27 17:01) [4]ikis © (27.06.03 16:22)
А как насчет работоспособности такого кода?
если DateTimeField тип дата а не строка работать не должно, со строкой приведет к типу.
такой запрос не "изящьнее" будет?
INSERT INTO MYTABLE (DateTimeField) VALUES (Now())
← →
ikis (2003-06-27 17:13) [5]2 sniknik
Прости, но ты глупость написал. Даже неловко как-то...
Впрочем, я тоже должен поправиться - кавычки в данном случае д. б. двойные:
ADOCommand.Execute("INSERT INTO MYTABLE (DateTimeField) VALUES (Date()&" "&Time());
← →
sniknik (2003-06-27 17:19) [6]извиняюсь что сомневался, но действительно работает. в insert-e и приведение из строки к дате проходит. (в UPDATE тоже работает)
а в условии не срабатывает, странно, разные люди чтоли писали, я уж думал что везде нужно формат даты (##) ставить.
даже так работает
UPDATE CopyT SET ДатаЗаявки="27.06.2003 17:08:43"
← →
sniknik (2003-06-27 17:22) [7]ikis © (27.06.03 17:13)
кавычки без разници, jet оба (" ") понимает.
и не такая уж глупость, у тебя двойное приведение типа, медленней работаь будет.
← →
Vorobyev Sergey (2003-06-28 07:51) [8]В Interbase можно например так без заморочек с приведениями форматов даты/времени:
INSERT INTO MYTABLE (DateTimeField)
VALUES (CURRENT_TIME) или
INSERT INTO MYTABLE (DateTimeField)
VALUES (CURRENT_TIME_STAMP)
Может что-то подобное можно и в Access? Наверняка можно..
← →
sniknik (2003-06-28 08:32) [9]Vorobyev Sergey (28.06.03 07:51)
> Может что-то подобное можно и в Access? Наверняка можно..
sniknik © (27.06.03 17:01)
> такой запрос не "изящьнее" будет?
>INSERT INTO MYTABLE (DateTimeField) VALUES (Now())
← →
Vorobyev Sergey (2003-06-28 09:33) [10]
> sniknik © (27.06.03 17:01)
> > такой запрос не "изящьнее" будет?
> > INSERT INTO MYTABLE (DateTimeField) VALUES (Now())
Простите, я не совсем понял, Now() это что, встроенная функция в SQL Access-a?
← →
sniknik (2003-06-28 14:27) [11]Vorobyev Sergey (28.06.03 09:33)
> Простите, я не совсем понял, Now() это что, встроенная функция в SQL Access-a?
можно считать и так, Jet (движок Access баз) позволяет некоторые функции из бейсика в запросах (кстати Date и Time тоже оттуда), список можно посмотреть в Visual Basic Reference, только не все оттуда сработает.
(пусть некоторые это и считают глупостью до неловкости :о))
← →
ikis (2003-07-01 09:19) [12]sniknik ©
>>(пусть некоторые это и считают глупостью до неловкости :о))
Должен принести свои извинения - функция Now() в VB присутствует, и она действительно возвращает текущие дату и время:
ADOCommand.Execute( "INSERT INTO MYTABLE (DateTimeField) VALUES ( Now() )" );
А по поводу кавычек - в данном случае нужно использовать кавычки разных типов, иначе компилятор выдаст сообщение об ошибке:
ADOCommand.Execute( "INSERT INTO MYTABLE (DateTimeField) VALUES ( Date()&" "&Time() )" );
Ну и, конечно, никакого приведения типов здесь нет и не было.
Полагаю, тема закрыта. Спасибо всем!
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c