Oracle Datadiff - PullRequest
       22

Oracle Datadiff

0 голосов
/ 24 сентября 2008

(Oracle) Я должен вернуть все записи за последние 12 месяцев. Как это сделать в PL / SQL?

РЕДАКТИРОВАТЬ: Извините, я забыл объяснить, у меня есть столбец типа данных

Ответы [ 3 ]

3 голосов
/ 24 сентября 2008

Выполнение этого в PL / SQL в значительной степени является синонимом выполнения в SQL.

SELECT *
FROM   table
WHERE  date_column >= ADD_MONTHS(TRUNC(SYSDATE),-12)

Возможно, вы захотите поиграть с оператором TRUNC, чтобы получить именно тот диапазон, который вам нужен - я использовал TRUNC (SYSDATE), который совпадает с TRUNC (SYSDATE, 'D') - т.е. удалить часть времени sysdate. Например, если это в настоящее время 12 августа, но вы хотите значения с 01 февраля вместо 12 февраля, используйте:

SELECT *
FROM   table
WHERE  date_column >= ADD_MONTHS(TRUNC(SYSDATE,'MM'),-12)

Также см. Документы по лечению месяцев с разным количеством дней: http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions004.htm#SQLRF00603

0 голосов
/ 24 сентября 2008
SELECT *
FROM   table
WHERE  date_column > ADD_MONTHS(SYSDATE, -12)

Не уверен, что заслужил понижение модов для более ранних постов ... только пытался помочь.

0 голосов
/ 24 сентября 2008
SELECT *
FROM   table
WHERE  date_column > SYSDATE - 365
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...