Форум: "Основная";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
ВнизПреобразование дат: гггг-мм-дд и дд-мм-гггг. Найти похожие ветки
← →
Chery (2004-11-29 13:39) [0]Формат поля в БД объявлен как DateTime в формате гггг-мм-дд (MySQL), а делфи воспринимает дату в дд-мм-гггг. Как мне преобразовать дату из Делфи, чтобы ее можно было записать в базу ф формате гггг-мм-дд.
← →
IceBeerg © (2004-11-29 13:54) [1]function FormatDateTime(const Format: string; DateTime: TDateTime): string;
+HELP
← →
Брат (2004-11-29 13:55) [2]ShortDateFormat:="yyyy.mm.dd";
← →
Chery (2004-11-29 14:31) [3]Я че-то не совсем понял.FormatDateTime возвращает же строку.
Я пробую так:
clPrikaz_Student.FieldByName("Dte_Prikaza").AsDateTime:=2004-09-20; Но оно все равно пытается преобразовать в дд.мм.гггг.
← →
simpson © (2004-11-29 14:33) [4]> FieldByName("Dte_Prikaza").AsDateTime:=2004-09-20;
Ужас.
См. в хэлпе описание типа TDateTime.
← →
Anatoly Podgoretsky © (2004-11-29 14:48) [5]Chery (29.11.04 14:31) [3]
Это означает 2004 - 09 - 20; = 1975
← →
Chery (2004-11-29 14:59) [6]тоесть, clPrikaz_Student.FieldByName("Dte_Prikaza").AsVariant:="2004.09.20";
← →
simpson © (2004-11-29 15:20) [7]> Chery (29.11.04 14:59) [6]
> FieldByName("Dte_Prikaza").AsVariant:="2004.09.20";
Во-первых, не нужно работать через AsVariant - это медленне, чем через тот же AsDateTime. Во-вторых, не путай формат, в котором хранятся данные, и формат, в котором они отображаются - это разные вещи.
Откуда берется записываемое в базу значение даты?
← →
Chery (2004-11-29 16:03) [8]Пользователь сам вводит в ДВГрид, в удобном для нас формате дд.мм.гггг..
← →
simpson © (2004-11-29 16:13) [9]Ты случаем не с аналогом TTable работаешь?
← →
Chery (2004-11-29 16:45) [10]Что-то мне уже страшно...
Мидас: ClientDataSet1.
На сервере Query и Provider
← →
simpson © (2004-11-29 16:53) [11]А в чем, собственно, трудность? Если уж так необходимо редактирование in-place, то, насколько я знаю, стандартный VCL-ный грид принимает дату в формате текущих региональных настроек системы, преобразует его к TDateTime и таким образом его передает связанному датасету.
А где тогда встречается это:
clPrikaz_Student.FieldByName("Dte_Prikaza").AsDateTime:=2004-09-20;
← →
Chery (2004-11-29 17:10) [12]Да нигде не встречается, это я уже пробовал задавать явно\
clPrikaz_Student.FieldByName("Dte_Prikaza").AsVariant:="2004.11.11"; И наблюдал, как оно ее воспринимает как 11.11.2004 (Системный формат). Но я ставил системный формат yyyy-MM-dd. И вроде все воспринимает. Но Результат не удовлетворительный. Оно не хочет записывать в базу.
← →
Chery (2004-11-29 17:15) [13]Ой, стоп, просто я тот же вопрос задавал в разделе БД. И там все сводилось к вопросу, указанному в теме. Теперь я вижу, что проблема в другом.
← →
Chery (2004-11-29 17:17) [14]У меня не хочет записывать в базу из-за Даты. Ставлю дату в Null - записывает. Как не задаю - не записывает. И формат в МуСКЛ - DateTime. Но не хочет.
← →
simpson © (2004-11-29 17:22) [15]Код показывай.
← →
Chery (2004-11-29 18:48) [16]Да какой тут код: ДБГрид, DataSource1, ClientDataSet1.
После Пост делаю апдейт: clPrikaz_Student.ApplyUpdates(-1);
На сервере вставляю:
insert into Prikaz_Student
(Kod_Stud, N_Prikaza, Dte_Prikaza, Kod_Prikaza)
values
(:Kod_Stud, :N_Prikaza, :Dte_Prikaza, :Kod_Prikaza)
Не работает (не добавляет), но когда в BeforePost пишу
clPrikaz_Student.FieldByName("Dte_Prikaza").AsVariant:=Null;
То работает. Формат поля даты в базе DATETIME. СУБД: MySQL5, драйвер MyODBC-3.51.10.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.049 c