powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как реализовать аналог Oracle ... where (field1-sysdate)>field2 ?
3 сообщений из 3, страница 1 из 1
Как реализовать аналог Oracle ... where (field1-sysdate)>field2 ?
    #34619732
A-V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
посмотрел как работает PG с датами, что-то не очень понравилось, в Оракле так всё просто.

есть таблица с полем field1 timestamp и field2 number. не смог реализовать конструкцию вида:
select * from t where (field1-sysdate)>field2;

если field2 константа, то получается, иначе глохо как-то
вот что получилось сделать
...
WHERE
CASE WHEN '00:01:00'::interval < age(now(), (t."field1")::timestamp with time zone)
THEN 'yes'::text
ELSE 'no'::text
END = 'yes'

хотелось бы вместо '00:01:00' видеть field2
...
Рейтинг: 0 / 0
Как реализовать аналог Oracle ... where (field1-sysdate)>field2 ?
    #34619862
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A-Vпосмотрел как работает PG с датами, что-то не очень понравилось


не путайте дату с таймстампом. Это разные типы. Даты лехко суммируются с целыми. Для тайстампов - нужно явное приведение к интервалам.
Код: plaintext
1.
select now()::date -  2 ;
select (now()::date -  2 ) - (now()::date- 5 ) < 3 ;
...
Рейтинг: 0 / 0
Как реализовать аналог Oracle ... where (field1-sysdate)>field2 ?
    #34620185
A-V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
решил проблему так:
...
WHERE field2 < EXTRACT(EPOCH FROM now()) - EXTRACT(EPOCH FROM field1)
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как реализовать аналог Oracle ... where (field1-sysdate)>field2 ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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