代码之家  ›  专栏  ›  技术社区  ›  Ewgenij Sokolovski

甲骨文:日期至半年

  •  1
  • Ewgenij Sokolovski  · 技术社区  · 6 年前

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

    • 2018年6月29日-1
    • 2018年5月1日-1
    • 2018年7月1日—2
    • 2018年10月15日-2

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

    那么,是否确实不存在内置函数?我很困惑,因为这不是一个非常罕见的用例。或者我错过了什么?

    3 回复  |  直到 5 年前
        1
  •  1
  •   Gordon Linoff    6 年前

    只需使用 case 表达式:

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

    简单算术:

    SELECT (EXTRACT(MONTH FROM somedate)-1)/6+1 
    
        3
  •  0
  •   David Faber    5 年前

    我只会用 EXTRACT() 以下内容:

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