SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Firebird, HQbird, InterBase » Точность TIMESTAMP (а надо ли)
Точность TIMESTAMP [сообщение #2641] Tue, 27 June 2023 18:10 Переход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
у Оракела TIMESTAMP как наследник DATE появился, если не ошибаюсь в 9i.
до того у них был тип DATE и точность его была 1сек.
у TIMESTAMP же сразу зафигачили точность до 10-9сек.
(в современных версиях оно настраивается на уровне DDL поля)
у нас сейчас (включая 5.0) точность 10-4сек и не настраивается.
вопрос на будущее:

а оно нам надо?
Re: Точность TIMESTAMP [сообщение #2642 является ответом на сообщение #2641] Tue, 27 June 2023 19:55 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 330
Зарегистрирован: June 2022
Senior Member
У нас точность ограничена ввиду внутреннего представления этого типа. Там внутри 2 32 битных числа. Первое это количество дней от 0 даты, второе - количество десятитысячных долей секунды с начала суток. Больше туда тупо не помещается. Так что расширить нельзя без потери обратной совместимости, либо новый тип делать, который опять де долгое время никем не будет поддерживаться.
Re: Точность TIMESTAMP [сообщение #2643 является ответом на сообщение #2642] Tue, 27 June 2023 19:58 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 330
Зарегистрирован: June 2022
Senior Member
А вот указание точности наверное можно добпвить без существенных переделок. Хранить ее как масштаб для numeric
Re: Точность TIMESTAMP [сообщение #2645 является ответом на сообщение #2641] Wed, 28 June 2023 00:52 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 411
Зарегистрирован: August 2022
Senior Member
МП писал(а) Tue, 27 June 2023 17:10

у TIMESTAMP же сразу зафигачили точность до 10-9сек.
(в современных версиях оно настраивается на уровне DDL поля)
Не настраивается. Формат хранения фиксирован, на уровне поля это чисто constraint, косметика.
Re: Точность TIMESTAMP [сообщение #2646 является ответом на сообщение #2641] Wed, 28 June 2023 10:23 Переход к предыдущему сообщениюПереход к следующему сообщению
neozx1984 в настоящее время не в онлайне  neozx1984
Сообщений: 27
Зарегистрирован: June 2022
Junior Member
МП писал(а) Tue, 27 June 2023 18:10
а оно нам надо?
timestamp с наносекундной точностью можно использовать как уникальный идентификатор или для генерации GUID.
Кому наносекунды нужны хранят их в целочисленном поле, отдельно от timestamp.
Re: Точность TIMESTAMP [сообщение #2647 является ответом на сообщение #2646] Wed, 28 June 2023 11:03 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 330
Зарегистрирован: June 2022
Senior Member
Цитата:
timestamp с наносекундной точностью можно использовать как уникальный идентификатор
нельзя.

или для генерации GUID
Гуид прекрасно генерируется и без этого. Другое дело полу-последовательный Guid, но тут лучше не на основе таймстампа делать.
Тут нужна либо процедура которая генерирует пачку последовательных гуидов, которые можно использовать какое-то время.
Либо другой вариант собирать гуид из двух составляющих: случайной части как идентификатор БД и последовательной части генератора.

Кому наносекунды нужны хранят их в целочисленном поле, отдельно от timestamp.
Это костыли. Понятно что кому надо проблему решает. Тут скорее речь за стандарт и совместимость с другими БД.
Re: Точность TIMESTAMP [сообщение #2650 является ответом на сообщение #2642] Wed, 28 June 2023 13:30 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
sim_84 писал(а) Tue, 27 June 2023 19:55
У нас точность ограничена ввиду внутреннего представления этого типа. Там внутри 2 32 битных числа. Первое это количество дней от 0 даты, второе - количество десятитысячных долей секунды с начала суток. Больше туда тупо не помещается. Так что расширить нельзя без потери обратной совместимости, либо новый тип делать, который опять де долгое время никем не будет поддерживаться.
а таймзона где?
Re: Точность TIMESTAMP [сообщение #2651 является ответом на сообщение #2650] Wed, 28 June 2023 15:18 Переход к предыдущему сообщениюПереход к следующему сообщению
neozx1984 в настоящее время не в онлайне  neozx1984
Сообщений: 27
Зарегистрирован: June 2022
Junior Member
МП писал(а) Wed, 28 June 2023 13:30
а таймзона где?
https://www.firebirdsql.org/en/firebird-technical-specificat ions/
Ещё одно 32 битное число из которого используется только 16 бит.
Re: Точность TIMESTAMP [сообщение #2652 является ответом на сообщение #2651] Wed, 28 June 2023 15:34 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
neozx1984 писал(а) Wed, 28 June 2023 15:18
МП писал(а) Wed, 28 June 2023 13:30
а таймзона где?
https://www.firebirdsql.org/en/firebird-technical-specificat ions/
Ещё одно 32 битное число из которого используется только 16 бит.
О!
значит есть куда запихать наносекунды.
Re: Точность TIMESTAMP [сообщение #2653 является ответом на сообщение #2652] Wed, 28 June 2023 16:14 Переход к предыдущему сообщениюПереход к следующему сообщению
neozx1984 в настоящее время не в онлайне  neozx1984
Сообщений: 27
Зарегистрирован: June 2022
Junior Member
МП писал(а) Wed, 28 June 2023 15:34
neozx1984 писал(а) Wed, 28 June 2023 15:18
МП писал(а) Wed, 28 June 2023 13:30
а таймзона где?
https://www.firebirdsql.org/en/firebird-technical-specificat ions/
Ещё одно 32 битное число из которого используется только 16 бит.
О!
значит есть куда запихать наносекунды.
16 бит это 65535, если беззнаковое. А наносекунды это 9 разрядов, которые влезут только в 32 бита.
Re: Точность TIMESTAMP [сообщение #2654 является ответом на сообщение #2653] Wed, 28 June 2023 16:34 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
neozx1984 писал(а) Wed, 28 June 2023 16:14
МП писал(а) Wed, 28 June 2023 15:34
neozx1984 писал(а) Wed, 28 June 2023 15:18
МП писал(а) Wed, 28 June 2023 13:30
а таймзона где?
https://www.firebirdsql.org/en/firebird-technical-specificat ions/
Ещё одно 32 битное число из которого используется только 16 бит.
О!
значит есть куда запихать наносекунды.
16 бит это 65535, если беззнаковое. А наносекунды это 9 разрядов, которые влезут только в 32 бита.
в сочетании с 15 младшими битами ISC_TIME должно хватить
Re: Точность TIMESTAMP [сообщение #2662 является ответом на сообщение #2654] Thu, 29 June 2023 14:33 Переход к предыдущему сообщениюПереход к следующему сообщению
basid в настоящее время не в онлайне  basid
Сообщений: 162
Зарегистрирован: June 2022
Географическое положение: Asia/Irkutsk
Senior Member
Источник времени на персоналках имеет наносекундную гранулярность, но не точность (ц) javadoc System.nanoTime().
Есть монотонный счётчик, не очень связанный со временем и есть отметки времени, измеряемые с точностью до десятых долей микросекунды.
Re: Точность TIMESTAMP [сообщение #2663 является ответом на сообщение #2662] Thu, 29 June 2023 15:17 Переход к предыдущему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
basid
Источник времени на персоналках имеет наносекундную гранулярность, но не точность (ц) javadoc System.nanoTime().
Есть монотонный счётчик, не очень связанный со временем и есть отметки времени, измеряемые с точностью до десятых долей микросекунды.
источник пофиг.
для простоты - сферический конь в вакууме.
речь о хранилище.
Предыдущая тема: FB 4.0 как правильно создать роль?
Следующая тема: Неизвестная time zone и ucal_open [ICU]
Переход к форуму:
  


Текущее время: Thu Nov 21 19:52:26 GMT+3 2024

Общее время, затраченное на создание страницы: 0.01072 секунд