Форум: "Базы";
Текущий архив: 2003.01.30;
Скачать: [xml.tar.bz2];
ВнизВставка даты в таблицу Найти похожие ветки
← →
idpro (2003-01-11 15:37) [0]Помогите с простым вроде вопросом:
используя ADOQuery я предаю ему на выполнение скомпанованный запрос:
"insert into Table_name (d_date) values ("+ sYYYYMMDD+ ")"
где d_date - поле типа datetime, sYYYYMMDD - строка, в которой содержится дата.
в каком виде мне нужно передавать эту строку, чтоб получить нормальный вид даты?
при передачи строки вида "2003-01-01" получается 22.06.1905
← →
gsu (2003-01-11 15:40) [1]datetime - это число, поэтому надо строку конвертнуть в дату, н-р, DateTimeToStr
← →
idpro (2003-01-11 15:47) [2]я не допонял: sYYYYMMDD - переменная типа string, компануется из двух чисел - месяц и год, (например 02 и 2003).
что мне сделать с ней, перед тем как подставитьв запрос?
← →
gsu (2003-01-11 15:54) [3]insert into Table_name (d_date) values (DateTimeToStr("01.02.2003"))
и вообще "+ sYYYYMMDD+ " - это не строка, в которой содержится дата, а строка:
+ sYYYYMMDD+
← →
idpro (2003-01-11 16:02) [4]нет, это часть строки, которая передается в ADOquery
adoquery1.sql.append(
"insert into Table_name (d_date) values ("
+ sYYYYMMDD+
")");
← →
gsu (2003-01-11 16:05) [5]adoquery1.sql.append(
"insert into Table_name (d_date) values (StrToDateTime(sYYYYMMDD))
");
Так не пойдет ?
← →
idpro (2003-01-11 16:10) [6]нет, StrToDateTime - дельфийская функция, а это формируется sql запрос, он должен быть строкой.
в "values("+" "+")" нужно вставлять именно строку.
← →
gsu (2003-01-11 16:25) [7]1. погоди, если ты вставляешь данные в поле DateTime, то и типа они должны быть такого же.
2. я стормозил про нужно вставлять именно строку
3. попробуй так:adoquery1.sql.append(
"insert into Table_name (d_date) values ("
+"01.02.2003"+")"); - тут многое зависит от настроек разделителей даты в системе и values
4. или так: adoquery1.sql.append(
"insert into Table_name (d_date) values ("
+"37653"+")");- шуршит ?
← →
Rina (2003-01-12 00:59) [8]Насколько помниться дата при передаче в запрос идет с кавычками
Поэтому предложить могу следующее
adoquery1.sql.append(
"insert into Table_name (d_date) values ("""
+"01.02.2003"+""")");
← →
Alex-Alexeev (2003-01-13 08:49) [9]
sYYYYMMDD := "20030113"; {т.е. сегодня в формате YYYYMMDD}
ADOQuery.SQL.Text := "insert into Table_name (d_date) values ("""+ sYYYYMMDD+ """)"; {Здесь саму строку уже в строке запроса тоже надо в апострофы заключать}
ADOQuery.ExecSQL;
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.01.30;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.01 c