Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2011, 10:01   #1
Prontit
Пользователь
 
Регистрация: 29.07.2011
Сообщений: 39
По умолчанию MySQL (yyyy-mm-dd) -> DBF (dd.mm.yyyy)

Добрый день!

Использую компонент MySQL Control для подключения к MySQL базе. Работаю в Rad2010. http://www.vitaliy.org/Node/View/40

Делаю запрос, и вытаскиваю даты:
date_f := find.ValueByName['date_f'];
date_l := find.ValueByName['date_l'];


дело в том, что тут не работает .AsDateTime, поэтому date_f и date_l просто string. Затем, пытаюсь преобразовать в date, в dd.mm.yyyy таком формате.
first:= FormatDateTime('dd.mm.yyyy', StrToDateTime(date_f));
last:= FormatDateTime('dd.mm.yyyy', StrToDateTime(date_l));


если ставлю у first и last тип данных tdatetime, то вылезает ошибка "W1057 Implicit string cast from 'AnsiString' to 'string'". Если ставлю string, то "2011-09-26 is not valid date and time".

Пробовал DateSeparator := '.';, не помогает.

В Mysql даты хранятся в виду yyyy-mm-dd, мне необходимо вытащит и переделать в dd.mm.yyyy
Prontit вне форума Ответить с цитированием
Старый 26.09.2011, 11:20   #2
Gulik
Холост/Не замужем
Форумчанин
 
Аватар для Gulik
 
Регистрация: 13.11.2007
Сообщений: 283
По умолчанию

Код:
DecodeDate(find.FieldByName('date_l').AsDateTime, y, m, d) ;
Код:
DecodeDate(StrToDate(find.FieldByName('date_l').AsString), y, m, d) ;
и делай дальше как тебе захочется, хоть dd.mm.dd.dd.yyyy формат )))
Gulik вне форума Ответить с цитированием
Старый 26.09.2011, 11:59   #3
Prontit
Пользователь
 
Регистрация: 29.07.2011
Сообщений: 39
По умолчанию

Цитата:
Сообщение от Gulik Посмотреть сообщение
Код:
DecodeDate(find.FieldByName('date_l').AsDateTime, y, m, d) ;
Код:
DecodeDate(StrToDate(find.FieldByName('date_l').AsString), y, m, d) ;
и делай дальше как тебе захочется, хоть dd.mm.dd.dd.yyyy формат )))
там нет FieldByName, есть только ValueByName, и у него нет не AsString не AsDateTime
Prontit вне форума Ответить с цитированием
Старый 26.09.2011, 13:09   #4
Gulik
Холост/Не замужем
Форумчанин
 
Аватар для Gulik
 
Регистрация: 13.11.2007
Сообщений: 283
По умолчанию

Цитата:
Сообщение от Prontit Посмотреть сообщение
там нет FieldByName, есть только ValueByName, и у него нет не AsString не AsDateTime
Код:
DecodeDate(StrToDate(find.ValueByName['date_l']), y, m, d) ;
Не вижу проблемы...

Или используй компоненты Zeos там все есть
Gulik вне форума Ответить с цитированием
Старый 26.09.2011, 13:42   #5
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Код:
SELECT DATE_FORMAT(date_l, "%d.%m.%Y") FROM table1;
Ну или идите по пути использования компонентов, вместо того, что бы использовать то что уже давно есть.
psycho-coder вне форума Ответить с цитированием
Старый 26.09.2011, 14:24   #6
Prontit
Пользователь
 
Регистрация: 29.07.2011
Сообщений: 39
По умолчанию

Цитата:
Сообщение от Gulik Посмотреть сообщение
Код:
DecodeDate(StrToDate(find.ValueByName['date_l']), y, m, d) ;
Не вижу проблемы...

Или используй компоненты Zeos там все есть
от зеоса отказался

Цитата:
Сообщение от psycho-coder Посмотреть сообщение
Код:
SELECT DATE_FORMAT(date_l, "%d.%m.%Y") FROM table1;
Ну или идите по пути использования компонентов, вместо того, что бы использовать то что уже давно есть.
как вариант. спасибо!
Prontit вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить дату в формате dd.mm.yyyy ArtGrek Общие вопросы Delphi 2 28.04.2011 10:55
Преобразование строки формата YYYY-MM-DD в дату, Варнинги! XerSon Общие вопросы Delphi 2 25.10.2010 09:19
Вывод только одного года ('yyyy') из даты 'dd.mm.yyyy'. В Accese Droid БД в Delphi 13 09.12.2009 13:37
Как преобразовать из dd/mm/yyyy в dd.mm.yyyy? Dux Общие вопросы Delphi 11 06.10.2009 00:21
Сортировка даты DD.MM.YYYY o1ps Общие вопросы C/C++ 1 06.11.2007 16:13