Oracle: дата до полугода - PullRequest
0 голосов
/ 29 июня 2018

Что мне нужно, так это преобразование даты в полугодие:

  • 29.06.2018 -> 1
  • 01.05.2018 -> 1
  • 01.07.2018 -> 2
  • 15.10.2018 -> 2

Я не нашел ничего подобного здесь Округление и усечение в Oracle

Значит, встроенной функции не существует? Я довольно озадачен, потому что это не очень редкий случай использования. Или я что-то пропустил?

Ответы [ 3 ]

0 голосов
/ 29 июня 2018

Простая арифметика:

SELECT (EXTRACT(MONTH FROM somedate)-1)/6+1 
0 голосов
/ 28 февраля 2019

Я бы просто использовал EXTRACT():

SELECT CEIL(EXTRACT(MONTH FROM mydate)/6)
  FROM mytable;
0 голосов
/ 29 июня 2018

Просто используйте выражение case:

select (case when extract(month from datecol) <= 6 then 1
             else 2
        end) as half_year
...