甲骨文:日期为半年

Oracle: date to half-year

我需要的是日期到半年的转换:

我在这里没有找到类似的东西Round and Truncate in Oracle

那么,真的没有内置函数吗?我很困惑,因为这不是一个非常罕见的用例。还是我错过了什么?

只需使用 case 表达式:

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

简单算术:

SELECT (EXTRACT(MONTH FROM somedate)-1)/6+1 

我会简单地使用 EXTRACT():

SELECT CEIL(EXTRACT(MONTH FROM mydate)/6)
  FROM mytable;