Mar*_*tin 0 sql oracle date-arithmetic
请考虑以下查询.我已经意识到fans.checkout-fans.checkin用来计算两个日期(以天为单位)之间的差异并不是一个好主意.如何重写它以便我可以使用DateDiff()?我似乎无法简单地fans.checkout-fans.checkin用这个功能替换.
select x.name
from (
select fans.name,
dense_rank() over (order by fans.checkout-fans.checkin desc) as rnk
from fans
where fans.checkout-fans.checkin is not null
) x
where x.rnk = 1
Run Code Online (Sandbox Code Playgroud)
为什么你认为减去两个日期以获得它们之间的天数不是一个好主意?这肯定是在Oracle中进行这种日期算术的标准方法.
DateDiff不是Oracle中存在的函数.我知道它存在于SQL Server中.当然,你可以编写自己的函数并调用它
CREATE OR REPLACE FUNCTION dateDiff( p_dt1 IN DATE,
p_dt2 IN DATE )
RETURN NUMBER
IS
BEGIN
RETURN p_dt1 - p_dt2;
END;
Run Code Online (Sandbox Code Playgroud)
但是,这并不是显而易见的,这样做会带来什么好处而不是简单地继续减去两个日期.
| 归档时间: |
|
| 查看次数: |
18151 次 |
| 最近记录: |