Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.03 c
1-1101161742
Bobby Digital
2004-11-23 01:15
2004.12.12
Listbox


1-1101507457
Кто---то
2004-11-27 01:17
2004.12.12
Как узнать время срабатывания двойного клика мышкой ?


1-1101608757
Bobby Digital
2004-11-28 05:25
2004.12.12
Listbox pt.2


4-1098854619
menart
2004-10-27 09:23
2004.12.12
Active descktop


14-1100922995
Думкин
2004-11-20 06:56
2004.12.12
С днем рождения! 20 ноября





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский