![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как выбрать подходящую маску ? [D5, IB6.x]
VID © (2004-01-14 01:45:00)
В одном датасете есть поле которое отображает дату и время в формате DD.MM.YYYY HH:MM
В ТБД поле имеет тип TIMESTAMP
При отображении всё ок, всё отображается корректно согласно указанному формату. но вот есть некоторые проблемы.
EditMask этого поля = "00.00.0000 00:00;1;_";
глобальные ShortDateFormat := "dd.mm.yyyy" и ShortTimeFormat := "hh:mm:ss";
так вот если в поле храниться значение 01.01.2004 04:45, то
при переводе поля в режим редактирования будет высвечена надпись
01.01.2004 4_:45 что конечно смущает.. однако если не обратить внимание на эту лажу и спокойно вводить нужную дату а потом и время то всё сохраняется нормально.
но хотелось бы что бы при отображении поля в режиме редактирования не было вышеуказанной проблемы.
как этого добиться ?
VID (2004-01-15 14:14:00) [1]
To Johnmen: спасибо, ты решил для меня этот ребус. Хотя конечно, этот маскэдит для меня всё равно остался магией какой-то
:)
Johnmen (2004-01-15 11:22:00) [2]
>Flagman ©
1 - TIMESTAMP
3 - TIMESTAMP, DATE и TIME.
>Да и ветка собственно не о том...
Вот и я думаю, зачем ты завел этот разговор ?...:)
Flagman (2004-01-15 11:10:00) [3]
2 Johnmen
Я так понял, что о 3, т.к. в 1 TIME и есть DateTime.
DATE как раз возник только в 3.
А насчет разделения и соединения, так это в принципе та же ...опа в других трусах ;) Плюсы и минусы есть и у того и у другого. Да и ветка собственно не о том... ;)
Johnmen (2004-01-15 11:04:00) [4]
>Flagman © (15.01.04 10:58)
О каком диалекте речь ?
Я так понял о 1. Тогда разделение на 2 поля не представляется целесообразным. А иногда и неудобным.
Поскольку всегда можно "работать" с тем, что надо, с "датой" или/и "временем".
Flagman (2004-01-15 10:58:00) [5]
2 stone
Чтобы иметь возможность сравнивать значения Date отдельно от Time
и наоборот. Геморроя меньше... ;)
2 VID
Короче. В свойстве DisplayFormat твоего поля (в COLUMN"S EDITOR"е) указываешь dd.mm.yyyy hh:mm
И все. У меня все работает.
Johnmen (2004-01-15 10:46:00) [6]
>VID ©
Почему 40 вместо 04 долго объяснять...
Просто задай едитмаск в виде
"00/00/0000 !00:00:00;1;0"
и не мучайся...:)
stone (2004-01-15 10:40:00) [7]
> Flagman (15.01.04 07:54) [6]
Зачем? Поле datetime хранит и то и другое.
> VID © (15.01.04 10:34) [7]
Тип TIMESTAMP - это временной штамп или верия строки. Его рекомендуют использовать, только если необходимо обеспечить уникальность значениу в пределах ВСЕЙ БАЗЫ ДАННЫХ, в стандартных случаях datetime.
VID (2004-01-15 10:34:00) [8]
можно конечно и порезать, но неохота как то... да и вообще во многих местах программы идёт ссылка на поле TESTINGDT и придётся ещё тратить время на поиски этих ссылок (программа то немаленькая)
ПРЕДЛАГАЮ ЕЩЁ РАЗ ЗАДУМАТЬСЯ НАД ВОПРОСОМ...
Flagman (2004-01-15 07:54:00) [9]
А может в порезать TIMESTAMP на DATE и TIME? Я обычно дату и время в разных полях храню и таких проблем пока не встречал...
VID (2004-01-15 02:25:00) [10]
To Johnmen: твой вариант с 00.00.0000 00:00;1;_ оказался наиболее близок к истине, теперь 0 не меняется на _, но вот остался такой глюк: когда значение поля = 10.01.0004 04:45
то в режиме редактирования отображается как 10.01.0004 40:45
В чём может быть дело ?
Для отображения поля использую TDBGridEh
Academic (2004-01-14 12:47:00) [11]
Поменяй маску на 00.00.0000 90:00;1;_
Desdechado (2004-01-14 10:35:00) [12]
попробуй TDateTimePicker использовать
Johnmen (2004-01-14 10:03:00) [13]
Укажи 0 вместо _
VID (2004-01-14 01:49:00) [14]
а 01.01.2004 00:00 вообще отображается как 01.01.2004 __:__