甲骨文:日期为半年
Oracle: date to half-year
我需要的是日期到半年的转换:
- 29.06.2018 -> 1
- 01.05.2018 -> 1
- 01.07.2018 -> 2
- 15.10.2018 -> 2
我在这里没有找到类似的东西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;
我需要的是日期到半年的转换:
- 29.06.2018 -> 1
- 01.05.2018 -> 1
- 01.07.2018 -> 2
- 15.10.2018 -> 2
我在这里没有找到类似的东西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;