我的表格包含有关来电的信息,每个来电都有start date
和end date
,格式如下:
YYYY-MM-DD HH:MM:SS
如何在几分钟或几秒内区分 开始日期 和 结束日期 ?
以及如何从日期删除秒或分钟?,例如(2015-12-23 20:20:50) - 10秒= 2015-12-23 20:20:40
答案 0 :(得分:3)
这是你之后的事情吗?
drop table junk;
create table junk (
id number,
start_date date,
end_date date
)
/
insert into junk values ( 1, to_date('23-dec-2015 20:20:40', 'dd-mon-yyyy hh24:mi:ss'), to_date('23-dec-2015 20:20:50', 'dd-mon-yyyy hh24:mi:ss') );
insert into junk values ( 1, to_date('23-dec-2015 20:20:40', 'dd-mon-yyyy hh24:mi:ss'), to_date('23-dec-2015 20:21:50', 'dd-mon-yyyy hh24:mi:ss') );
insert into junk values ( 1, to_date('23-dec-2015 20:20:40', 'dd-mon-yyyy hh24:mi:ss'), to_date('23-dec-2015 22:21:50', 'dd-mon-yyyy hh24:mi:ss') );
commit;
select id, start_date, end_date,
end_date - start_date diff_days,
(end_date - start_date)*24 diff_hrs,
(end_date - start_date)*24*60 diff_min,
(end_date - start_date)*24*60*60 diff_sec,
trunc(end_date,'MI') no_seconds
from junk
/
ID START_DATE END_DATE DIFF_DAYS DIFF_HRS DIFF_MIN DIFF_SEC NO_SECONDS
---------- -------------------- -------------------- ---------- ---------- ---------- ---------- --------------------
1 23-dec-2015 20:20:40 23-dec-2015 20:20:50 .000115741 .002777778 .166666667 10 23-dec-2015 20:20:00
1 23-dec-2015 20:20:40 23-dec-2015 20:21:50 .000810185 .019444444 1.16666667 70 23-dec-2015 20:21:00
1 23-dec-2015 20:20:40 23-dec-2015 22:21:50 .084143519 2.01944444 121.166667 7270 23-dec-2015 22:21:00
SQL>
[编辑] 刚注意到我想你可能也要求从日期值中删除一组秒数。
因此,如果我们想删除15天,我们可以:
end_date - 15
删除15小时:
end_date - (15/24)
...等,直到15秒:
end_date - (15/24/60/60)
;)