Oracle Datadiff

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

Обновлено: Извините, я забыл объяснить, у меня есть столбец типа DATA

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
539
3

Ответы 3

SELECT *
FROM   table
WHERE  date_column > SYSDATE - 365

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

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

В Oracle нет такой функции, как ROLL_MONTHS

David Aldridge 24.09.2008 16:14

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

Matthew Watson 25.09.2008 04:05

Мэтью ... Я возражал против того факта, что он не упомянул, что у него есть столбец ДАТА (см. Более позднюю правку выше) ... Я спросил, есть ли у него столбец ДАТА (сообщение теперь удалено), и получил понижен для этого. Я чувствовал, что это было жестко. :-)

cagcowboy 26.09.2008 12:07

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

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

Вы можете повозиться с оператором TRUNC, чтобы получить именно тот диапазон, который вам нужен - я использовал TRUNC (SYSDATE), который совпадает с TRUNC (SYSDATE, 'D') - т.е. удалить временную часть sysdate. Например, если сейчас 12 августа, но вам нужны значения с 1 февраля вместо 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

Другие вопросы по теме