有开放日期2015-05-19 10:40:14
和结束日期2015-05-20 09:21:11
当我减去它们时,我得到(close_date.date_value - open_date.date_value)
一些9.45104166666666666666666666666666666667E-01
值
我想忽略2个日期的时间10:40:14和09:21:11 同样地,我减去(SYSDATE - open_date.date_value)并获得减去2个日期时的天数
任何人都可以帮我解决这个问题
case
when s then
(close_date.date_value - open_date.date_value)
else
(SYSDATE - open_date.date_value)
end as "dd",
答案 0 :(得分:1)
试试这个
case
when status_name.list_value_id=9137981352013344123 then
(TRUNC(close_date.date_value) - TRUNC(open_date.date_value))
else
(TRUNC(sysdate) - TRUNC(open_date.date_value))
end as "e2e execution time",
答案 1 :(得分:1)
您可以使用DATEDIFF功能。这是代码
SELECT DATEDIFF(DAY, CONVERT(DATETIME, '2015-05-19 10:40:14'), CONVERT(DATETIME, ' 2015-05-20 09:21:11'))
答案 2 :(得分:0)
从效果的角度来看,我不会使用 TRUNC ,因为它会在日期列<列上取消任何常规索引 / strong>即可。我会让日期算术原样, ROUND 值。
例如,
SQL> SELECT SYSDATE - to_date('2015-05-20 09:21:11','YYYY-MM-DD HH24:MI:SS') diff,
2 ROUND(
3 SYSDATE - to_date('2015-05-20 09:21:11','YYYY-MM-DD HH24:MI:SS')
4 ) diff_round
5 FROM dual;
DIFF DIFF_ROUND
---------- ----------
29.1248264 29
SQL>