Страница 1 из 1
Поля типа TIMESTAMP
Добавлено: 15 апр 2005, 18:51
prostoruslan
Какая точность полей типа TIMESTAMP?
То есть - могу ли я в этих полях размещать дату и время с точностью до милисекунды? Или я ограничен точностью в секунду? Как вообще хранится дата и время в этих полях?
Добавлено: 15 апр 2005, 20:05
Merlin
Хранить - можешь. Читать, в смысле приводить к строчному виду для визуализации и т.п. - нет, преобразующая функция миллисекунды теряет. Очень удобно, не спорю

В FB2 вроде наконец собрались починить, но поднялся какой-то крик от заложився в своё время на это разработчиков каких-то экзотических приложений. Чем дело кончилось - не помню, может dimitr заглянет и прояснит.
Добавлено: 17 апр 2005, 23:14
prostoruslan
Merlin писал(а):Хранить - можешь. Читать, в смысле приводить к строчному виду для визуализации и т.п. - нет, преобразующая функция миллисекунды теряет.
А писать? Я пользуюсь BCB 6 и последним IBX, пишу данные с внешнего источника, который теоретически выдает точность до милисекунды. В таблице есть первичный ключ в том числе и по полю времени. В результате я получаю ошибку "Key violation". Завтра на работе буду разбираться в том числе и с IBX. Наверное введу новое поле специально для милисекунд.
Очень удобно, не спорю

Типа близок локоть...
В FB2 вроде наконец собрались починить, но поднялся какой-то крик от заложився в своё время на это разработчиков каких-то экзотических приложений. Чем дело кончилось - не помню, может dimitr заглянет и прояснит.
Пусть бы эти разработчики "экзотических приложений" сидели себе смирненько на FB 1.0.x или 1.5.х.

Добавлено: 18 апр 2005, 12:38
dimitr
Можешь нормально как читать, так и писать. Нюанс - в версиях до 2.0 CURRENT_TIMESTAMP возвращает значения с секундной точностью. Но если ее не используешь, то все ОК.
Добавлено: 18 апр 2005, 15:46
prostoruslan
Разобрался. Проблема не в Firebird, проблема в IBX. Именно он теряет милисекунды. При записи он их отбрасывает, при чтении - устанавливает милисекунды в 0. Скорее всего, он в целях совместимости с версиями IB 5.x использует устаревшие вызовы клиентской библиотеки.