powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Надо интервал времени разделить на интервал
6 сообщений из 6, страница 1 из 1
Надо интервал времени разделить на интервал
    #38974830
PCContra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу узнать, сколько дней прошло с 20 мая до сегодня.
Код: sql
1.
SELECT (NOW() - '2015-05-20'::DATE)/(interval '1 day')


Ругается.
В принципе, я ожидал увидеть что-то типа 14.525511 (дней)

Как мне добиться такого ответа?
...
Рейтинг: 0 / 0
Надо интервал времени разделить на интервал
    #38974839
Alexius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PCContra,

Код: sql
1.
select extract(epoch from (now() - '2015-05-20'::date)) / extract(epoch from interval '1 day');
...
Рейтинг: 0 / 0
Надо интервал времени разделить на интервал
    #38976940
PCContra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо . Я тут в мануале по Вашей подсказке нашел extract в главе 9.9 и 9.9.1 на 264й странице, попробовал и остался доволен таким результатом:
Код: sql
1.
SELECT CURRENT_DATE - '2015-05-20'


Пишет как раз количество дней между двумя датами. И работает очень быстро
...
Рейтинг: 0 / 0
Надо интервал времени разделить на интервал
    #38976963
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PCContra Спасибо . Я тут в мануале по Вашей подсказке нашел extract в главе 9.9 и 9.9.1 на 264й странице, попробовал и остался доволен таким результатом:
Код: sql
1.
SELECT CURRENT_DATE - '2015-05-20'


Пишет как раз количество дней между двумя датами. И работает очень быстро
то что даты вычитаются с целым результатом какбе не вопрос
вопрос какбе вот в этом:
автор
Код: sql
1.
я ожидал увидеть что-то типа 14.525511 (дней)


-- и вдруг -- целого ему достаточно.
трахтибидох
...
Рейтинг: 0 / 0
Надо интервал времени разделить на интервал
    #38977507
PCContra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы меня подловили, qwwq))) Вы очень внимательны к деталям.
Мне достаточно было целого дня.
А первоначальное решение, я так понимаю, для получения дробного значения
...
Рейтинг: 0 / 0
Надо интервал времени разделить на интервал
    #38978398
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PCContraВы меня подловили, qwwq))) Вы очень внимательны к деталям.
Мне достаточно было целого дня.
А первоначальное решение, я так понимаю, для получения дробного значения
я хотел вам сразу посоветовать вычитать даты

Код: sql
1.
SELECT (NOW()::DATE - '2015-05-20'::DATE)



но алексус формально был прав

а интервалы в стандарте не делятся, потому как не упорядоченный тип.
делить интервалы , вообще говоря дело не однозначное: высокосный год и обычный год -- '1 year'::interval, а дней в них разное количество. То же об интервалах "месяц".
но давно на форуме была ф-я для деления "стандартизированного понимания интервалов" -- от LeXa NalBat -- я против такого, для неокрепших умов, так как оно маскирует проблему, но за то, чтобы приводить код в качестве иллюстрации возможностей.

заметим, что если выделить упорядоченный подтип интервалов, без месяцев , годов и т.п. разновеликих периодов -- проблема снимется, будет тип "калиброванные интервалы" [день, час, минута, секунда и т.п.] и его расширение "фольклёрные интервалы" .
на калиброванных можно будет ввести операцию деления. а на фольклёрных -- калибровку "в той или иной системе координат, в той или иной её точке" (каковая неявно существует -- при добавлении интервала к конкретной дате вы получаете вполне определенный результат -- т.е. длительность "непостоянного" (по длительности) интервала полностью определена в точке приложения).
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Надо интервал времени разделить на интервал
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]