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

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

тип поля - Дата/время


Newser ©   (2007-07-09 12:47:00) 

В поле "Время" (time) заношу следующее значение:
FormatDateTime( 'hh:nn', Now);
просматриваю в Access - всё в порядке: "12:10"
(тип поля - Дата/время; маска ввода - краткий формат времени)
а как вывожу в DBGrid - ерунда получается: "01.01.2003 12:10:18" (примерно так)

подскажите  - где ошибка?


Anatoly Podgoretsky   (2007-07-19 11:33:00) [1]


> sniknik, можно было не философствовать два абзаца, а просто
> написать:

Ну так бы и говорил - код давай.


sniknik   (2007-07-19 10:54:00) [2]

> sniknik, можно было не философствовать два абзаца, а просто написать:
это твое дело код писать... мое объяснять и советовать, если мне интересно конечно... в принципе иногда и код даю, если очень интересно (вопрос сподвиг на проверку).
а пишу я быстро, т.что буквы не экономлю, что 1 строку что два абзаца... в пределах разумного все одно.  

кстати совет, хоть и не просил, - не пользуйся компонентами ADOTable, ADOQuery, ADOStoredProc (!!! удали с палитры, от соблазна). почему? сам ищи.


iXT   (2007-07-19 10:37:00) [3]

> [11] Newser   (19.07.07 09:52)

В [10] на вопрос не ответил :) Как узнаешь, твоя проблема сразу и решиться


Newser   (2007-07-19 10:36:00) [4]

Всё, нашёл!

sniknik, можно было не философствовать два абзаца, а просто написать:
(ADOTable.FieldByName('TTime') as TDateTimeField).DisplayFormat := 'hh:mm:ss';


sniknik   (2007-07-19 10:31:00) [5]

> Должен же быть какой-то выход!?
смотря к чему ты стремишься. что для тебя выход?
если переделать тип под собственные представления то это гиблое дело, забудь, и никто этого не делает ни аксес ни т.д.
если показывать также как они, то это элементарно.

начни с
> 3. А вывожуэто значение в DBGrid - бобавляется какой-то мусор:
> 30.12.1899 17:28:00
... как выводишь? что делаешь для вывода - где код/настройки? или ты ничего не делаешь? все на самотеке по дефайлту, а дельфи тогда считаешь должна твои мысли считывать для настройки отображения, как тебе хочется?
(имхо, это надо на первом же занятии, в первых страницах книг - "компьютер мыслей не читает! (язык тоже), вы получаете то что написали, а не то, что мысленно представляли")


Newser   (2007-07-19 09:52:00) [6]

iXT ©   (18.07.07 18:06) [10]
Потому, что так оно и должно быть и никак инатче.


Я не могу поверить, что это безвыходная ситуация (
Должен же быть какой-то выход!?


iXT   (2007-07-18 18:06:00) [7]

Потому, что так оно и должно быть и никак инатче.

Что из себя представляет тип TDateTime знаешь?


Newser   (2007-07-18 17:58:00) [8]

Мастера, попробовал я DATE_FORMAT -
- разницы никакой!

Начал изучать проблему по-порядку:
1. ShowMessage(FormatDateTime('hh:nn', Now));
Всё правильно - пр. "17:28"
2. Открываю таблицу в Access, - тоже "17:28"
3. А вывожу это значение в DBGrid - бобавляется какой-то мусор:
30.12.1899 17:28:00

Ну почему так происходит?


iXT   (2007-07-09 14:04:00) [9]

> [6] Newser   (09.07.07 13:49)
> Так ?
> Наверно! - попробую!
>
> Мне интересно почему со вторым полем, которое я заполняю:
>
> DateToStr(Now)
> проблем таких нет? (не добавляются же к нему часы, минуты...)

Именно так. Кроме этого, одно поле выкинуть к чертовой бабушке :)


Johnmen   (2007-07-09 14:00:00) [10]


> Мне интересно почему со вторым полем, которое я заполняю:
> DateToStr(Now)проблем таких нет? (не добавляются же к нему
> часы, минуты...)

Удовлетвори свой интерес, нажав F1 на DateToStr.


iXT   (2007-07-09 13:49:00) [11]

> 'hh:nn'

:)


Newser   (2007-07-09 13:49:00) [12]

Так ?
Наверно! - попробую!

Мне интересно почему со вторым полем, которое я заполняю:
DateToStr(Now)
проблем таких нет? (не добавляются же к нему часы, минуты...)


Anatoly Podgoretsky   (2007-07-09 13:47:00) [13]


> В поле "Время" (time) заношу следующее значение:
> FormatDateTime( 'hh:nn', Now);
> просматриваю в Access - всё в порядке: "12:10"
> (тип поля - Дата/время; маска ввода - краткий формат времени)
> а как вывожу в DBGrid - ерунда получается: "01.01.2003 12:
> 10:18" (примерно так)
>
> подскажите  - где ошибка?

В NOW, а подробности в справке
И какой такой еще FormatDateTime при занесение данных.


homm_ro   (2007-07-09 13:39:00) [14]

ADOQuery.Close;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add('SELECT `Message`, `Data`, DATE_FORMAT('hh:nn', `time`) FROM ....');
ADOQuery.Open;

Так ?


Newser   (2007-07-09 13:37:00) [15]

А можно пример как сочетать:
DATE_FORMAT(date,format)
и
ADOQuery.Close;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add('SELECT Message, Data, time FROM ....');
ADOQuery.Open;

т.е. как в этом запросе значение поля timeсделать DATE_FORMAT(???)


homm_ro   (2007-07-09 12:50:00) [16]

> подскажите  - где ошибка?

Нигде. DATE_FORMAT в SQL запросе должна помочь.


Наверх

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