Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 11.11.2013
Сообщений: 19
1

Неправильно отображается время в DBGrid!

14.02.2014, 13:26. Показов 1491. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите как решить проблему: в таблице, созданной в Access установил в поле тип - Время. Время пишется по маске ЧЧ:ММ. А в программе в DBGridе отображается с какой-то еще датой непонятной! Причем программа считывает только время (а не эту дату) и добавляется через программу тоже спокойно всё! Что делать???
Изображения
 
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.02.2014, 13:26
Ответы с готовыми решениями:

Неправильно отображается адрес
Всем привет, у меня появился такой ступор. Пишу что-то типа браузера, пользовался вопросами...

D7 + Windows10 неправильно отображается align
Приложения написанные в D7+WinXP неправильно отображаются в Win10. Если свойство TPanel...

Неправильно сортирует в DBGrid AdoTable
в таблице всё правильно заполнено, но почему-то сначала идёт одна фамилия, потом другая, а потом...

Первый поиск не отображается в DbGrid
Подскажите,плиз что делать! есть Tcombobox & TEdit. Выбираю в combobox любой из последних трех...

10
36 / 36 / 7
Регистрация: 15.01.2013
Сообщений: 161
14.02.2014, 16:17 2
используй функции преобразования времени в строку - это в самом запросе,
или попробуй задать DisplayFormat - это в свойствах поля DataSet .
0
Эксперт Pascal/Delphi
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
14.02.2014, 16:28 3
Цитата Сообщение от SerJ_RiccI Посмотреть сообщение
отображается с какой-то еще датой непонятной
эта дата - время начала нового века (очередная фишка Microsoft, использованная для решения проблем с совместимостью). Borland выставил ее с 1899 г.
1
Модератор
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
14.02.2014, 16:31 4
Цитата Сообщение от droider Посмотреть сообщение
Borland выставил ее с 1899 г.
Меня, кстати, это всегда раздражало
Можно подумать, что в БД не м.б. более древних дат
0
Эксперт Pascal/Delphi
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
14.02.2014, 17:06 5
Grossmeister, в БД я вообще не вижу смысла выставлять именно эту дату по умолчанию.
1
0 / 0 / 0
Регистрация: 11.11.2013
Сообщений: 19
14.02.2014, 17:14  [ТС] 6
Цитата Сообщение от droider Посмотреть сообщение
эта дата - время начала нового века
И как её убрать? Приколисты блин!

Добавлено через 3 минуты
Цитата Сообщение от ArtProud Посмотреть сообщение
используй функции преобразования
Это довольно трудно т.к. в БД поле задано как время, а в программе приравнивается к системному времени и это все прописывается через sql.
0
0 / 0 / 0
Регистрация: 11.11.2013
Сообщений: 19
14.02.2014, 17:16  [ТС] 7
Цитата Сообщение от ArtProud Посмотреть сообщение
DisplayFormat - это в свойствах поля DataSet
А у меня почему то такого нет!
Миниатюры
Неправильно отображается время в DBGrid!  
0
Модератор
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
14.02.2014, 17:17 8
Лучший ответ Сообщение было отмечено SerJ_RiccI как решение

Решение

Цитата Сообщение от SerJ_RiccI Посмотреть сообщение
в БД поле задано как время
Я не работал с Access, но вообще в большинстве СУБД не существует тип "Время". Еcть тип DATE, который содержит дату со временем. Если хочешь использовать только время - вытаскиваешь его из этого поля соответствующими функциями. Ну или хранишь время в символьном поле.
0
0 / 0 / 0
Регистрация: 11.11.2013
Сообщений: 19
14.02.2014, 17:27  [ТС] 9
Цитата Сообщение от Grossmeister Посмотреть сообщение
не существует тип "Время"
Ну вот так вот я задаю тип!
Миниатюры
Неправильно отображается время в DBGrid!   Неправильно отображается время в DBGrid!  
0
1074 / 987 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
14.02.2014, 18:34 10
SerJ_RiccI, прислушайтесь к Grossmeister'у. В этой СУБД нет типа время.
Задаваемый вами формат в Аксессе - это всего лишь отображение времени в самой среде Аксесса и не более того.
Если нужно хранить только время, то лучше чем в строковом виде не придумаешь (текст с 4-5 или 6-7 символами).
Все равно, если в базе будет время с типом Дата/время, то придется препарировать данные и отделять
дату от времени, даже если эта дата равна нулю.
Если в строковом виде, то отделять не нужно, а преобразовывать в тип TDateTime для вычислений придется.
А раз так, то логичнее выбрать формат хранения с наименьшим геморроем, т.е. символьный.
1
пофигист широкого профиля
4733 / 3167 / 859
Регистрация: 15.07.2013
Сообщений: 18,252
14.02.2014, 19:50 11
Цитата Сообщение от SerJ_RiccI Посмотреть сообщение
А у меня почему то такого нет!
Не там смотришь. Ты смотришь в свойствах колонки DBGrid'a, а надо смотреть в свойствах поля датасета.
0
14.02.2014, 19:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.02.2014, 19:50
Помогаю со студенческими работами здесь

Не отображается содержимое стобцов (записи) в DBGrid
Здравствуйте, не нашел по поиску информацию, если повторяюсь с чем то прошу извинить на первый раз....

Неправильно выводит время
БД-Access, доступ ADO в таблице Access есть поле Time типа дата/время с форматом времени короткий...

Формат даты в DbGrid, как не отображать время?
В Access поле дата (Краткий формат даты), маска ввода (00.00.0000;0;_) В Access дата отображается...

Из DateTimePicker в DBGrid отобразить время, дату и год
Как написать код что бы из DateTimePicker в DBGrid отобразилась время, дата и год?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru