Как получить количество дней без использования TRUNC в Oracle - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь получить количество дней между SYSDATE и столбцом в одной из моих таблиц без использования TRUNC, поскольку мне нужно, чтобы временная метка была включена в вычитание.

Я пытаюсь добиться чего-то похожего на код ниже, но без использования TRUNC

select * from table_name where trunc(sysdate) - trunc(column_name) > 60;

Обратите внимание, что column_name - это отметка времени, а не дата.

Ответы [ 3 ]

0 голосов
/ 18 февраля 2019

Вы можете использовать:

select * from table_name where column_name <= sysdate - 60;

или:

SELECT * FROM table_name WHERE column_name < sysdate - interval '60' day;
0 голосов
/ 18 февраля 2019

Используйте тип данных INTERVAL для определения интервала.to_dsinterval() преобразует строку формата `DD HH24: MI: SS 'в интервал, в данном случае ровно шестьдесят дней:

select * from table_name 
where column_name < sysdate - to_dsinterval('60 0:0:0');
0 голосов
/ 18 февраля 2019

Почему бы вам не попробовать select req_columns from MyTable where sysdate - column > 60.

Вы можете попробовать запрос ниже, если один из столбцов имеет метку времени.

select * from Mytable where sysdate - to_date(to_char(colTimeStamp, 'YYYY-MON-DD HH24:MI:SS'), 'YYYY-MON-DD HH24:MI:SS') > 60
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...