当前位置:数据库 > Oracle >>

oracle 获取时间段问题

两个字段a,b,格式都是yyyy-mm-dd,现在我要获取时间段并判断其是否小于一年,如何写?
追问:是的,计算间隔时间并判断是否小于一年
答案:这个最好转换一下思路,
假设a小于b,
你要判断其是否小于一年
可以转换成a的一年后是否小于b
即:add_months(a,12)-b 是否大于零,这个就不用考虑闰年了,=0就是整一年
SELECT a,add_months(a,12),b,add_months(a,12)-b FROM
(
SELECT to_date('2008-2-29','yyyy-mm-dd') a,to_date('2009-2-28','yyyy-mm-dd') b FROM dual
)
--WHERE add_months(a,12)-b <0;
其他:没明白,是要计算这两个日期的间隔时间吗? where a-b>365 如果不判断 闰年的话.

时间段并判断其是否小于一年
首先把 a, b 的数据, 由字符类型, 转换为 日期类型。
然后 用 日期相减, 取 绝对值得方式, 判断 结果是否小于 365
ABS(  TO_DATE(a, 'YYYY-MM-DD')  -  TO_DATE(b, 'YYYY-MM-DD')   )  < 365 select abs(trunc(a) - trunc(b)) as 间隔天数,
          case when abs(months_between(a, b))  <= 12 then '小于一年' 
                   else '大于一年' 
           end as 是否小于一年
from  表

上一个:怎么判断一个网站它用的是什么数据库? oracle,mysql,sql server,access,这个要怎么判断
下一个:做实验用,关于Oracle VM VirtualBox增加一块磁盘

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,