当前位置: 首页 > 知识库问答 >
问题:

Oracle中是否有减去日期的函数?

海景曜
2023-03-14

我知道在Oracle中,我可以直接减去两个日期列,然后检查它们之间的间隔天数:

 SELECT * FROM VOYAGE WHERE endDate - beginDate > 30

但是,有没有内置的Oracle函数可以做完全相同的事情?就像MySQL的DATEDIFF似乎可以做的那样:

 SELECT * FROM VOYAGE WHERE DATEDIFF(endDate,beginDate) > 30

我需要这个功能来克服我正在使用的ORM框架中的一个缺点。

创建函数不是一个选项。它必须真正是内置的。

共有2个答案

松俊美
2023-03-14

如果您明确需要一个函数,它接受两个日期参数并返回天数,那么您必须自己编写。正如另一个答案所示,唯一接受两个日期并返回一个数字的内置标准函数是MONTHS_BETWEEN

select package_name, object_name, overload, count(*), 
       listagg(argument_name||' '||data_type||' '||in_out,';') 
                  within group (order by position) args
from all_arguments
where package_name = 'STANDARD'
and owner = 'SYS'
group by package_name, object_name, overload
having 1=max(case when position = 0 and in_out = 'OUT' 
                   and data_type = 'NUMBER' then 1 end)
and 2 = sum(case when data_type = 'DATE' and in_out = 'IN' then 1 end)
and count(*) = 3;
艾英范
2023-03-14

在这段时间内,oracle内置函数中没有任何内容。

中间有几个月

如果需要,您可以编写自己的函数

 类似资料:
  • 问题内容: 我将如何编写一个表达式,使我获得以天,小时,分钟,秒等为单位的两个日期之间的差异?默认情况下,在oracle中减去两个日期将以天数形式返回天数。 问题答案: 十进制是提供的两个日期之间的天数差。您可以做一些数学运算以将其转换为天,小时,分钟,秒等。 编辑 :我看到你在找什么。我敢肯定有一种更简单的方法,但是我可能会这样完成: …其中5.3574585是减法返回的天数… 注意:这还没有经

  • 问题内容: 我有一个这样的日期: 如何返回同一日期但比一年前早的日期? 问题答案: 您可以使用: 该函数返回unix时间戳,可以使用以下格式的字符串:

  • 问题内容: 我想从bash日期中减去“天数”。我正在尝试这样的事情.. 问题答案: 您输入的日期不正确。相反,说: 如果需要将其存储在变量中,请使用:

  • 问题内容: 想要改善这篇文章吗? 提供此问题的详细答案,包括引文和答案正确的解释。答案不够详细的答案可能会被编辑或删除。 有谁知道约会(例如今天)和回溯X天的简单方法吗? 因此,例如,如果我想计算今天之前5天的日期。 问题答案: 尝试这样的事情: 请注意,这将修改日期对象并返回更新日期的时间值。

  • 我JasperReport中有这样的代码,就像< code > new simple date format(" DD/MM/yyyy ")。format(new Date())-24 * 3600 * 1000 但是它不起作用,我正在尝试从今天开始减去一天。但它是这样显示今天的

  • 问题内容: 这个问题已经在这里有了答案 : PL / SQL如何从日期中获取X天前的日期? (2个答案) 7年前关闭。 我想从sysdate中减去给定的x天数,有人可以在此方面为我提供帮助吗,我使用的是PL / SQL语言。谢谢! 问题答案: 使用sysdate-1从系统日期中减去一天。 输出: