我想使用 Oracle 但 DATEDIFF 和 DATEADD 函数在 Oracle DB 中不起作用。
如何在 Oracle 中编写下面提到的代码?
datediff('QUARTER', pr.StartDate, SYSDATE)
datediff('MONTH', pr.StartDate, SYSDATE)
在这种情况下最好的做法是使用 Oracle 的MONTHS_BETWEEN()
功能。
代替:
datediff('QUARTER', pr.StartDate, SYSDATE)
你会使用:
MONTHS_BETWEEN(pr.startdate, SYSDATE) / 3
而不是:
datediff('MONTH', pr.StartDate, SYSDATE)
你会使用:
MONTHS_BETWEEN(pr.startdate, SYSDATE)
请记住,这MONTHS_BETWEEN()
将返回月份的分数,因此请使用TRUNC()
orROUND()
如果您需要一个整数。
当然,如果您需要几天而不是几个月,您可以简单地从另一个日期中减去一个日期,例如,SYSDATE - pr.startdate
反之亦然。
如果您需要为日期添加天数,您可以简单地这样做:
pr.startdate + 1 -- where 1 is the number of days
如果您需要添加或减去月份,请使用该ADD_MONTHS()
函数 - 与INTERVAL
s不同,该函数在闰年可以安全使用。
希望这可以帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句