Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.71/62: Рейтинг темы: голосов - 62, средняя оценка - 4.71
36 / 36 / 1
Регистрация: 06.12.2010
Сообщений: 205

Неправильное отображение времени

28.03.2011, 02:59. Показов 13177. Ответов 84
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть маленькая база данных (данные сохраняются на Access). Есть колонка куда вношу время (допустим 14:37). Изменения производятся в отдельной форме. Пишу 14:37, жму сохранить. На главной форме время отображается по другому: 30.12.1899 14:37. Уже готов с этим смириться, но как Вы видите дата отображается неправильно, и как бы я не экспериментировал с EditMask и с настройками даты и время через панель управления упорно пишет 30 декабря 1899 года.
Тут мне подсказали, что в базе то хранится все равно дата-время
а так показывает потому, что при записи в поле я отрезаю дату, а пустая она как раз ресетится в 30.12.1899 и раз я вношу только время, то нужно обрезать дату, либо, если нужно запоминать с текущей датой, то добавлять её при записи.
Я понимаю. что это возможно очень просто, но всё таки подскажите как обрезать, чтобы отражалось только время.
Спасибо.

Добавлено через 25 минут
_____________________________
Поле время текстовым типом делать не очень хочется.
Может быть существуют другие варианты??
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.03.2011, 02:59
Ответы с готовыми решениями:

Неправильное отображение времени из таблицы в DbGrid-е
Привет! Столкнулся с проблемой: В базе данных, в ячейке находится время (12:12), но в программе в DBGrid время отображается (30.12.1899...

Неправильное отображение ComboBox-a
ComboBox при запуске программы ещё до выбора чего-нибудь из выпадающего списка имеет такую рамку как на рисунке. При этом второй,...

Неправильное отображение надписей грида
Добрый день, компонент dbgrideh отображает непонятные символы в searchpanel и при startloadingstatus. Кто сталкивался? Подскажите)

84
283 / 262 / 32
Регистрация: 11.11.2009
Сообщений: 605
11.04.2011, 18:09
Студворк — интернет-сервис помощи студентам
Вместо того чтоб пытаться разобраться в длинах и вариантах, наверное все же лучше использовать функции форматирования:
Delphi
1
Edit1.Text := FormatDateTime('HH:NN', BAZA.FieldByName('Время').AsDateTime);
2
22 / 22 / 9
Регистрация: 08.03.2011
Сообщений: 155
11.04.2011, 19:00
Добрый вечер.
Залез с аккаунта другого человека.

new_in_net, ваш способ - работает.
А можно чтобы в мой Базе как и отображалось ранее отображалось 65 000 р
т.е. с пробелами и т.д. и с буквой р.

А Когда нажимаю редактировать чтобы были только цифры.
т.е. если можете то пришлите ещё 1 строчку похожего кода)))
Впринципе понятно что надо изменить но незнаю что написать заместо FormatDateTime и AsDateTime ведь это не формат даты и времени а тупо цифры т.е. цена.

Заранее спасибо)
0
283 / 262 / 32
Регистрация: 11.11.2009
Сообщений: 605
11.04.2011, 19:14
Цитата Сообщение от orif Посмотреть сообщение
Добрый вечер.
Залез с аккаунта другого человека.

new_in_net, ваш способ - работает.
А можно чтобы в мой Базе как и отображалось ранее отображалось 65 000 р
т.е. с пробелами и т.д. и с буквой р.

А Когда нажимаю редактировать чтобы были только цифры.
т.е. если можете то пришлите ещё 1 строчку похожего кода)))
Впринципе понятно что надо изменить но незнаю что написать заместо FormatDateTime и AsDateTime ведь это не формат даты и времени а тупо цифры т.е. цена.

Заранее спасибо)
Я вам писал вначале этой темы - у любого поля есть DisplayFormat для отображения, также есть другое своиство - EditFormat для редактирования.

Delphi
1
2
MyField.DisplayFormat := ',0.00 р';
MyField.EditFormat := '0.00'
1
36 / 36 / 1
Регистрация: 06.12.2010
Сообщений: 205
11.04.2011, 23:49  [ТС]
Действительно, прописал так и всё нормально.
Code
1
  TCurrencyField(BAZA.FieldByName('Цена')).EditFormat := '0.' ;
а вот ещё такой вопрос.... Я бы хоет сделать в меню пункт: Случайности.
Нажимая на него выскакивает меню с выбором. напрмиер Опоздание.
Нажимаешь на него и там написано: Введите на сколкьо времени опоздает поезд. Вот жжо этого момента всё понятно.. А как сделать чтобы оно приплюсовывалось с данными моей таблицы??

т.е. было к прмиеру 16:02 я ввёл 46 и оно стало 16:48... ТАкое вообще возможно?? Или я слишком много хочу?)))

и вот с Qreport никак невыходит((((
0
283 / 262 / 32
Регистрация: 11.11.2009
Сообщений: 605
12.04.2011, 00:02
Цитата Сообщение от Krit-Ydachnik Посмотреть сообщение
Действительно, прописал так и всё нормально.
Code
1
  TCurrencyField(BAZA.FieldByName('Цена')).EditFormat := '0.' ;
а вот ещё такой вопрос.... Я бы хоет сделать в меню пункт: Случайности.
Нажимая на него выскакивает меню с выбором. напрмиер Опоздание.
Нажимаешь на него и там написано: Введите на сколкьо времени опоздает поезд. Вот жжо этого момента всё понятно.. А как сделать чтобы оно приплюсовывалось с данными моей таблицы??

т.е. было к прмиеру 16:02 я ввёл 46 и оно стало 16:48... ТАкое вообще возможно?? Или я слишком много хочу?)))

и вот с Qreport никак невыходит((((
Используйте функции IncDay(); IncHour(); IncMinute(); IncSecond();
например вместо

Delphi
1
Edit1.Text := FormatDateTime('HH:NN', BAZA.FieldByName('Время').AsDateTime);
делайте
Delphi
1
Edit1.Text := FormatDateTime('HH:NN', IncMinute(BAZA.FieldByName('Время').AsDateTime, 46));
1
36 / 36 / 1
Регистрация: 06.12.2010
Сообщений: 205
12.04.2011, 00:14  [ТС]
ммм.. мне надо что бы то что я ввёл в идете появлялось в базе после нажатия ОК...
Ваш код доабвит конкретно 46 минут а надо то что будет в едите...
0
283 / 262 / 32
Регистрация: 11.11.2009
Сообщений: 605
12.04.2011, 00:47
Цитата Сообщение от Krit-Ydachnik Посмотреть сообщение
ммм.. мне надо что бы то что я ввёл в идете появлялось в базе после нажатия ОК...
Ваш код доабвит конкретно 46 минут а надо то что будет в едите...
может я чего-то не понимаю, но изменить в таблице аналогично:
Delphi
1
BAZA.FieldByName('Время').AsDateTime := IncMinute(BAZA.FieldByName('Время').AsDateTime, 46);
либо в таблицу из Edit добавляя 46 минут
Delphi
1
BAZA.FieldByName('Время').AsDateTime := IncMinute(StrToTime(Edit1.Text), 46);
1
36 / 36 / 1
Регистрация: 06.12.2010
Сообщений: 205
12.04.2011, 00:54  [ТС]
может я чего-то не понимаю
Млин наверно я плохо объяснил как всегда((

46 минут это я привёл к прмиеру.

Вот представьте нажимаю опоздание из меню. выскакивает форма.
В форме есть едит.
НАпрмиер form15 и edit1 так вот в edit я ввожу значение ЛЮБОЙ. НЕ обязателньо 46. это может быть и 20 и 26 и 15 и 46 и 10 и 6 и 35 и т.д... ТО, которое я ВВЕДУ!!

НУ вроде так понятно объяснил)))
0
283 / 262 / 32
Регистрация: 11.11.2009
Сообщений: 605
12.04.2011, 01:08
Цитата Сообщение от Krit-Ydachnik Посмотреть сообщение
Млин наверно я плохо объяснил как всегда((

46 минут это я привёл к прмиеру.

Вот представьте нажимаю опоздание из меню. выскакивает форма.
В форме есть едит.
НАпрмиер form15 и edit1 так вот в edit я ввожу значение ЛЮБОЙ. НЕ обязателньо 46. это может быть и 20 и 26 и 15 и 46 и 10 и 6 и 35 и т.д... ТО, которое я ВВЕДУ!!

НУ вроде так понятно объяснил)))
может я не понял что именно вам нужно.
Я показал вам часть с добавлением того что вы ввели. В моих примерах это число - 46 минут.
Вам что форма нужна с Эдитом и возможностью ввода? Или как этот Эдит в дальнейшем использовать при инкременте минут?
0
36 / 36 / 1
Регистрация: 06.12.2010
Сообщений: 205
12.04.2011, 01:13  [ТС]
Вот так
Миниатюры
Неправильное отображение времени  
0
283 / 262 / 32
Регистрация: 11.11.2009
Сообщений: 605
12.04.2011, 01:15
Цитата Сообщение от Krit-Ydachnik Посмотреть сообщение
Вот так
Тогда при нажатии на Ок чуть-чуть видоизмененный вариант:
Delphi
1
BAZA.FieldByName('Время').AsDateTime := IncMinute(BAZA.FieldByName('Время').AsDateTime, StrToInt(Edit1.Text));
1
36 / 36 / 1
Регистрация: 06.12.2010
Сообщений: 205
12.04.2011, 01:18  [ТС]
[Error] Unit1.pas(142): Undeclared identifier: 'IncMinute'
0
283 / 262 / 32
Регистрация: 11.11.2009
Сообщений: 605
12.04.2011, 01:19
подправил

Добавлено через 40 секунд
добавьте в uses unit DateUtils
1
36 / 36 / 1
Регистрация: 06.12.2010
Сообщений: 205
12.04.2011, 01:19  [ТС]
Code
1
BAZA.FieldByName('Время').AsDateTime := IncMinute(BAZA.FieldByName('Время').AsDateTime, StrToInt(form13.Edit3.Text));

Сделал так. - итог при нажатии кнопки редактирова т.е. там где яещё убуд вводит на сколкьо поздает выдаёт ошибку и вылетает с проги




16:35 is not a valid integer value
0
283 / 262 / 32
Регистрация: 11.11.2009
Сообщений: 605
12.04.2011, 01:22
Цитата Сообщение от Krit-Ydachnik Посмотреть сообщение
Если в имлементатион описывать то
[Error] Unit1.pas(83): Identifier expected but 'UNIT' found
Функция в IncMinute находится в юните DateUtils...

Добавлено через 46 секунд
слово UNIT убери
1
36 / 36 / 1
Регистрация: 06.12.2010
Сообщений: 205
12.04.2011, 01:28  [ТС]
Да я уже давно убрал)) хах)) догадался)))
Теперь проблема опсиана выше)) ↑
0
283 / 262 / 32
Регистрация: 11.11.2009
Сообщений: 605
12.04.2011, 01:29
Цитата Сообщение от Krit-Ydachnik Посмотреть сообщение
16:35 is not a valid integer value
Вы что в Эдите вводите 16:35? Там только минуты. Целочисленные.
1
36 / 36 / 1
Регистрация: 06.12.2010
Сообщений: 205
12.04.2011, 01:31  [ТС]
блин..я сам себя перемудрил))) Счас сделю как надо через пару мин отпишсь))
0
36 / 36 / 1
Регистрация: 06.12.2010
Сообщений: 205
12.04.2011, 01:37  [ТС]
Вот настоящая причина)) ранее я тупил)))
Миниатюры
Неправильное отображение времени  
0
283 / 262 / 32
Регистрация: 11.11.2009
Сообщений: 605
12.04.2011, 17:43
Перед любым редактированием желательно делать явный Edit, а после либо Post (сохранить) либо Cancel (отменить)

Code
1
2
3
4
5
// начать редактирование
BAZA.Edit;
BAZA.FieldByName('Время').AsDateTime := IncMinute(BAZA.FieldByName('Время').AsDateTime, StrToInt(form13.Edit3.Text));
// завершить редактирование и сохранить
BAZA.Post;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.04.2011, 17:43

Неправильное отображение шрифтов в Delphi
Открываю базу данных DBF, а там вместо русских букв какие то козябры??? Пробовал реструктуризировать Desktopom - не получается. В Delphi...

Неправильное отображение русских символов
Есть программа в которой выводится список установленных программ и обновлений. Русские символы отображаются знаком вопроса. ...

Неправильное отображение программы в панели задач
Программа нормально запускает главную форму, но если навести курсор на значок в панели задач, то там с заголовком "Project 1"...

Неправильное отображение таблиц и заголовков в Word
добрый день, форумчане. Уже час бьюсь над проблемой. Вообщем хочу через дельфи сделать отчет в ворде. Значит пишу заголовок и...

Неправильное отображение символов в консольном приложении
Необходимо сделать простую таблицу из символов ┘,┌,╪,╫ и.т.д. Пишу write('┘┌╪╫') (для проверки), но консоль отображает не те символы....


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

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Новые блоги и статьи
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru