如何屏蔽 sql 中的日期格式?

How to mask date format in sql?

有开放日期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",

试试这个

  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",

您可以使用 DATEDIFF 函数。这是代码

SELECT DATEDIFF(DAY, CONVERT(DATETIME, '2015-05-19 10:40:14'), CONVERT(DATETIME, ' 2015-05-20 09:21:11'))

性能的角度来看,我不会使用TRUNC,因为它会抑制任何常规index 在日期 。我会让日期算术原样,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>