Юлианские даты
Эта страница переведена при помощи нейросети GigaChat.
Система юлианских дат – это метод нумерации дней. Она не связана с юлианским календарем, хотя и называется сбивающе похоже на этот календарь. Система юлианской даты была изобретена французским ученым Жозефом Жюстусом Скалигером (1540-1609) и, вероятно, получила свое название от отца Скалигера, итальянского ученого Юлия Цезаря Скалигера (1484-1558).
В системе юлианских дат каждому дню присваивается последовательный номер, начиная с JD 0 (что иногда называют юлианская дата). JD 0 соответствует 1 января 4713 года до нашей эры по юлианскому календарю или 24 ноября 4714 года до нашей эры по григорианскому календарю. Подсчет юлианских дат чаще всего используется астрономами для маркировки своих ночных наблюдений, поэтому дата идет от полудня по всемирному координированному времени до следующего полудня по всемирному координированному времени, а не от полуночи до полуночи: JD 0 обозначает 24 часа с полудня по всемирному координированному времени 24 ноября 4714 года до нашей эры до полудня по всемирному координированному времени 25 ноября 4714 года до нашей эры.
Хотя PostgreSQL поддерживает нотацию Юлианской даты для ввода и вывода дат (и также использует юлианские даты для некоторых внутренних расчетов времени), он не учитывает тонкость того, что даты должны начинаться с полудня до полудня. PostgreSQL рассматривает Юлианскую дату как начинающуюся с местной полуночи до местной полуночи, так же как и обычная дата.
Это определение, однако, предоставляет способ получить астрономическое определение, когда оно нужно: выполняйте вычисления в часовом поясе UTC+12. Например:
=> SELECT extract(julian from '2021-06-23 7:00:00-04'::timestamptz at time zone 'UTC+12');
extract
------------------------------
2459388.95833333333333333333
(1 row)
=> SELECT extract(julian from '2021-06-23 8:00:00-04'::timestamptz at time zone 'UTC+12');
extract
--------------------------------------
2459389.0000000000000000000000000000
(1 row)
=> SELECT extract(julian from date '2021-06-23');
extract
---------
2459389
(1 row)