oracle如何计算系统时间与数据库的时间差(分钟)?

如题:数据库有字段A,时间格式是:00:00:00注意,没有日期,现在要计算的是,当前系统时间减去字段A,所得的分钟数,返回整数,比如相差20分就返回20,天数可忽略,因为是同一天。谢谢!
哦,字段A的类型是 char。

select (to_date(trunc(sydate)||' '||'01:00:00')-trunc(sysdate))*24*60 from dual;
方法是先把字符串和日期连接起来组成带时间的DATETIME字符串格式再转成DATETIME型,然后就可以处理日期型数据了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-13
oracle 里面的时间 就是指的你数据库所在的机器上的系统时间。
select sysdate from dual;
你可以调整下数据库服务器的时间 ,再试试,是同步走的
第2个回答  2013-04-18
一定是同一天么? 一个是系统时间,一个是你的字段值
第3个回答  2013-04-18
select trunc((sysdate-hiredate)*60) from 表名追问

hiredate什么东西?我是要用系统时间减去字段的时间啊,而且字段的时间是不带日期的

追答

select trunc((sysdate-to_date('00:00:00','hh24:mi:ss'))*60) from 表名
把'00:00:00'换成你的字段名

追问

这样不行的!我现在达到的目的是:当系统时间—字段时间>=20分钟时,执行某个动作,但不知道这20分钟怎么在后台自动算出来

追答

select * from 表名 where 时间字段 <= sysdate-20/1440

追问

提示无效月份呢!不能这样减吧?因为sysdate里面有日期和时间的,还有就是我的字段里面只有时间,没有日期

追答

把你语句整个发上来我看看,帮你看一下