select to_char((sysdate - start_date),'yyyymmdd hh24:mi:ss') start_time from agent_stats;
解决方案 »
- oracle 安装问题,请各位大侠帮帮忙啊
- 函数的问题
- 安装oracle出现的问题
- 用过正版oracle的朋友请进
- 关于序列的问题(如何在insert操作后能够知晓insert进去的序列值)
- 新手问题,有关ado连接的
- 我的ora8i中有个两个数据库A、B,我在oem中移去了一个A,在磁盘上A的文件没有删除。现在OEM里面只有B库了,我想把
- 高手请入:设置odbc来将access导入oracle9i时,对于access中的数字类型数据应该做怎样的处理和定义才能导入???
- 为什么Net8 Configuration Assistant不能用?
- C#从oracle数据库中读取数据乱码
- 我想购买关于Oracle9i的认证资料!!!
- ODBC-连接问题 高手请进!
这样得到的是间隔多少秒
(sysdate - start_date ) * 24 * 60 * 60
要得到你需要的格式
你需要进行计算转换
查一下那个函数取整函数
我这儿没有环境及帮助
select to_char((sysdate - start_date),'yyyymmdd hh24:mi:ss') start_time from agent_stats
*
错误位于第1行:
ORA-01481: 无效的数字格式模型3楼:我知道这么写不会错,但是得不到我需要的输出格式,因为出来的是一个小数2楼,4楼:你们写过这样的语句吗?
因为3楼那么写得出的结果是比较精确的,照理说,应该能把它按格式输出的呀。
需要什么函数吗?我查了半天帮助也不得其法。各位谁写过这样的句子,帮帮忙了!拜托~
SQL> select numtodsinterval(sysdate - start_date,'day') from agent_stats;
select numtodsinterval(sysdate - start_date,'day') from agent_stats
*
错误位于第1行:
ORA-00904: 无效列名
numtodsinterval这个是谁提供的函数啊?不会是笔误吧?
select to_char(to_date('2003','yyyy')+(sysdate-start_date),'hh24:mi:ss') start_time from agent_stats;
不知可否
上面是我的理解,可是把你的语句运行一下却出现了我想不到的结果,
下面是你写的语句的运行结果:
SQL> select to_char(to_date('2003','yyyy')+(sysdate-start_date),'hh24:mi:ss')
2 start_time from agent_stats;START_TI
--------
12:02:4912:02:49 就是当前时间,为什么会得出当前时间呢????
高手指点一下吧!
sysdate-start_date是两个日期相差的天数,
那么to_date('2003','yyyy')+(sysdate-start_date)
就是指从2003年1月1日0点经过的天数,
因为是从0开始的,所以也就将(sysdate-start_date)
表现在日期里了,
但是值(sysdate-start_date)不能为负,也不能超过24,
否则to_char(to_date('2003','yyyy')+(sysdate-start_date),'hh24:mi:ss')
就得不到正确结果。