【问题标题】:Getting day difference between two dates in Oracle PLSQL在 Oracle PLSQL 中获取两个日期之间的天差
【发布时间】:2021-05-29 23:19:12
【问题描述】:

我想在 Oracle 触发器中获取 2 个日期之间的天差。这是我的代码:(声明 v_dayDiff 数字)

--in my trigger
     SELECT View_Table.DateStart - View_Table.DateFinish
     INTO v_dayDiff
     FROM View_Table
     WHERE :NEW.id=View_Table.id;

DATEDIFF() 不起作用,在论坛中我读到我们可以将它与 SELECT 一起使用,但它不起作用

【问题讨论】:

  • DATEDIFF 用于 SQL Server、MySQL、DB2、PostgreSQL 以及可能的其他数据库,但不用于 Oracle。
  • Postgres 和 DB2 都没有预定义的 DateDiff 函数。
  • @Belayer:我依赖网络搜索。看起来这可能不是 100% 准确的。 :-)
  • 您可能会发现查看the documentation 很有用

标签: sql oracle date plsql triggers


【解决方案1】:

在 Oracle 中,两个日期之间的差是十进制天数。因此,您的逻辑应该有效,尽管您可能希望该值为正数。所以假设完成是在开始之后:

SELECT View_Table.DateFinish - View_Table.DateStart

然后如果你想要一个整数,截断值:

SELECT TRUNC(View_Table.DateFinish - View_Table.DateStart)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-10
    • 1970-01-01
    • 2017-10-24
    • 1970-01-01
    • 2021-11-15
    • 1970-01-01
    • 1970-01-01
    • 2020-03-22
    相关资源
    最近更新 更多