问题描述
如何仅在access_history(location_id) = tour_detail (location_id) 的地方比较HH24:MI,并以分钟为单位获得差异。也许是一个函数,它接受了2个MMDDYYYY HH24:MI:SS并返回差异。如果没有相应的access_history日期,则为NULL或-999999
我知道我能做这样的事。但是我必须将值转换为数字才能进行比较。请注意,如果它们具有相同的HH24:MI,则差异可以是-分钟或0
我知道我能做这样的事。但是我必须将值转换为数字才能进行比较。请注意,如果它们具有相同的HH24:MI,则差异可以是-分钟或0
select d
from my_table
where to_char(d,'HH24') > '16';
select * from tour_detail
order by tour_id, tour_time
TOUR_ID TOUR_TIME LOCATION_ID
1 06222020 01:27:55 20
1 06222020 01:55:30 15
1 06222020 02:04:09 10
create table access_history(
employee_id number(6),
card_num varchar2(10),
location_id number(4),
access_date date,
processed number(1) default 0
);
select * from access_history
where employee_id =1
order by access_date;
EMPLOYEE_ID CARD_NUM LOCATION_ID ACCESS_DATE PROCESSED
1 QS0655F608 20 06222020 11:55:28 0
1 QS0655F608 15 06222020 14:32:16 0
1 QS0655F608 10 06222020 14:32:16 0 专家解答
我不完全确定你想在这里做什么。
您可以通过将一个日期减去另一个日期来获得两个日期之间的天数差异。
要将其转换为分钟,请将结果乘以一天中的分钟数 (1,440),例如:
您可以通过将一个日期减去另一个日期来获得两个日期之间的天数差异。
要将其转换为分钟,请将结果乘以一天中的分钟数 (1,440),例如:
with rws as (
select
to_date ( '06222020 14:32:16', 'mmddyyyy hh24:mi:ss' ) d1,
to_date ( '06222020 02:04:09', 'mmddyyyy hh24:mi:ss' ) d2
from dual
)
select d1, d2,
round ( d1 - d2, 5 ) days_diff,
round ( ( d1 - d2 ) * 1440 ) minutes_diff
from rws;
D1 D2 DAYS_DIFF MINUTES_DIFF
22-JUN-2020 14:32:16 22-JUN-2020 02:04:09 0.51953 748 文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




