【发布时间】:2016-05-23 13:11:57
【问题描述】:
我必须计算当前(sysdate)和修改时间的分钟时差:-
to_date(to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS'), 'YYYY-MM-DD HH24:MI:SS')
- to_date(to_char(modified, 'YYYY-MM-DD HH24:MI:SS'), 'YYYY-MM-DD HH24:MI:SS')
但问题是 to_char 返回正确的时间:-
to_char(whenmodified, 'YYYY-MM-DD HH24:MI:SS')
输出2016-05-23 14:55:50
并且 to_date 不显示时间:-
to_date(to_char(modified, 'YYYY-MM-DD HH24:MI:SS'), 'YYYY-MM-DD HH24:MI:SS')
输出:2016-05-23
请帮助我如何通过将 to_char 转换为 to_date 来获得时差。
注意:
我不能这样做 sysdate-modified 因为 sysdate 和 modified 都给出没有时间的日期,例如 2016-05-23
将 to_char 用于 sysdate 或修改后的给定日期,时间为 2016-05-23 14:55:50
由于我们不能在 to_char 函数中减去日期,我再次将它们转换回 to_date 以获得时间。
我期待: 2016-05-23 14:55:50 - 2016-05-23 14:53:50 = 2 分钟
【问题讨论】:
-
为什么要将
sysdate和modified转换为文本然后再转换回来? -
你不能只做 sysdate-modified 吗?
-
不,因为 sysdate 或 modified 只给出日期但没有时间戳
-
@JonSkeet,因为 to_date(whenmodified, 'YYYY-MM-DD HH24:MI:SS') 只给出日期 2016-05-23 我也需要时差。
-
修改的数据类型是什么?