Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

INSERT INTO MYTABLE (DateTimeField) VALUE ( [здесь текущая дата]) [D6, Access 2K]


ikis ©   (2003-06-27 15:43:00) 

Ответьте, пж-та, на вопрос: как с помощью SQL записать в таблицу текущее дату-время (напр. как subj)?


ikis   (2003-07-01 09:19:00) [1]

sniknik ©
>>(пусть некоторые это и считают глупостью до неловкости :о))

Должен принести свои извинения - функция Now() в VB присутствует, и она действительно возвращает текущие дату и время:
ADOCommand.Execute( "INSERT INTO MYTABLE (DateTimeField) VALUES ( Now() )" );

А по поводу кавычек - в данном случае нужно использовать кавычки разных типов, иначе компилятор выдаст сообщение об ошибке:
ADOCommand.Execute( "INSERT INTO MYTABLE (DateTimeField) VALUES ( Date()&" "&Time() )" );

Ну и, конечно, никакого приведения типов здесь нет и не было.
Полагаю, тема закрыта. Спасибо всем!


sniknik   (2003-06-28 14:27:00) [2]

Vorobyev Sergey (28.06.03 09:33)
> Простите, я не совсем понял, Now() это что, встроенная функция в SQL Access-a?

можно считать и так, Jet (движок Access баз) позволяет некоторые функции из бейсика в запросах (кстати Date и Time тоже оттуда), список можно посмотреть в Visual Basic Reference, только не все оттуда сработает.
(пусть некоторые это и считают глупостью до неловкости :о))


Vorobyev Sergey   (2003-06-28 09:33:00) [3]


> sniknik © (27.06.03 17:01)
> > такой запрос не "изящьнее" будет?
> > INSERT INTO MYTABLE (DateTimeField) VALUES (Now())


Простите, я не совсем понял, Now() это что, встроенная функция в SQL Access-a?


sniknik   (2003-06-28 08:32:00) [4]

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 07:51:00) [5]

В Interbase можно например так без заморочек с приведениями форматов даты/времени:

INSERT INTO MYTABLE (DateTimeField)
VALUES (CURRENT_TIME) или

INSERT INTO MYTABLE (DateTimeField)
VALUES (CURRENT_TIME_STAMP)

Может что-то подобное можно и в Access? Наверняка можно..


sniknik   (2003-06-27 17:22:00) [6]

ikis © (27.06.03 17:13)
кавычки без разници, jet оба (" ") понимает.

и не такая уж глупость, у тебя двойное приведение типа, медленней работаь будет.


sniknik   (2003-06-27 17:19:00) [7]

извиняюсь что сомневался, но действительно работает. в insert-e и приведение из строки к дате проходит. (в UPDATE тоже работает)
а в условии не срабатывает, странно, разные люди чтоли писали, я уж думал что везде нужно формат даты (##) ставить.
даже так работает
UPDATE CopyT SET ДатаЗаявки="27.06.2003 17:08:43"


ikis   (2003-06-27 17:13:00) [8]

2 sniknik
Прости, но ты глупость написал. Даже неловко как-то...
Впрочем, я тоже должен поправиться - кавычки в данном случае д. б. двойные:

ADOCommand.Execute("INSERT INTO MYTABLE (DateTimeField) VALUES (Date()&" "&Time());


sniknik   (2003-06-27 17:01:00) [9]

ikis © (27.06.03 16:22)
А как насчет работоспособности такого кода?
если DateTimeField тип дата а не строка работать не должно, со строкой приведет к типу.

такой запрос не "изящьнее" будет?
INSERT INTO MYTABLE (DateTimeField) VALUES (Now())


ikis   (2003-06-27 16:22:00) [10]

Спасибо, спасибо...
Вот, придумал:
ADOCommand.Execute("INSERT INTO MYTABLE (DateTimeField) VALUES (Date()&" "&Time());

IMHO, немного изящнее, чем через параметр ;о)


Anatoly Podgoretsky   (2003-06-27 16:12:00) [11]

Смотри в справке по Access 2000 какой должен быть формат у дат или что проще через параметр, см. выше


MsGuns   (2003-06-27 16:04:00) [12]

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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо