Поля типа TIMESTAMP

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
prostoruslan
Сообщения: 3
Зарегистрирован: 15 апр 2005, 18:45

Поля типа TIMESTAMP

Сообщение prostoruslan » 15 апр 2005, 18:51

Какая точность полей типа TIMESTAMP?

То есть - могу ли я в этих полях размещать дату и время с точностью до милисекунды? Или я ограничен точностью в секунду? Как вообще хранится дата и время в этих полях?

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 15 апр 2005, 20:05

Хранить - можешь. Читать, в смысле приводить к строчному виду для визуализации и т.п. - нет, преобразующая функция миллисекунды теряет. Очень удобно, не спорю :( В FB2 вроде наконец собрались починить, но поднялся какой-то крик от заложився в своё время на это разработчиков каких-то экзотических приложений. Чем дело кончилось - не помню, может dimitr заглянет и прояснит.

prostoruslan
Сообщения: 3
Зарегистрирован: 15 апр 2005, 18:45

Сообщение prostoruslan » 17 апр 2005, 23:14

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

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Сообщение dimitr » 18 апр 2005, 12:38

Можешь нормально как читать, так и писать. Нюанс - в версиях до 2.0 CURRENT_TIMESTAMP возвращает значения с секундной точностью. Но если ее не используешь, то все ОК.

prostoruslan
Сообщения: 3
Зарегистрирован: 15 апр 2005, 18:45

Сообщение prostoruslan » 18 апр 2005, 15:46

Разобрался. Проблема не в Firebird, проблема в IBX. Именно он теряет милисекунды. При записи он их отбрасывает, при чтении - устанавливает милисекунды в 0. Скорее всего, он в целях совместимости с версиями IB 5.x использует устаревшие вызовы клиентской библиотеки.

Ответить