关于日期和时间计算的问题 select to_char((sysdate - start_date),'yyyymmdd hh24:mi:ss') start_time from agent_stats; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select sysdate - start_date from agent_stats; 楼上说得对这样得到的是间隔多少秒(sysdate - start_date ) * 24 * 60 * 60要得到你需要的格式你需要进行计算转换查一下那个函数取整函数我这儿没有环境及帮助 1楼,你应该测试一下,你那么写不行的SQL> select to_char((sysdate - start_date),'yyyymmdd hh24:mi:ss') start_time from agent_stats; select to_char((sysdate - start_date),'yyyymmdd hh24:mi:ss') start_time from agent_stats *错误位于第1行:ORA-01481: 无效的数字格式模型3楼:我知道这么写不会错,但是得不到我需要的输出格式,因为出来的是一个小数2楼,4楼:你们写过这样的语句吗?因为3楼那么写得出的结果是比较精确的,照理说,应该能把它按格式输出的呀。需要什么函数吗?我查了半天帮助也不得其法。各位谁写过这样的句子,帮帮忙了!拜托~ select numtodsinterval(sysdate - start_date,'day') from dual; 楼上:SQL> select numtodsinterval(sysdate - start_date,'day') from agent_stats;select numtodsinterval(sysdate - start_date,'day') from agent_stats *错误位于第1行:ORA-00904: 无效列名numtodsinterval这个是谁提供的函数啊?不会是笔误吧? 我只用过dayafter()函数搞定 如果你想得到sysdate和start_date相差几时几分几秒,可试试以下语句(但时间不能超过24小时,否则截位):select to_char(to_date('2003','yyyy')+(sysdate-start_date),'hh24:mi:ss') start_time from agent_stats;不知可否 楼上,这么做不行,因为sysdate-start_date得出的是一个浮点数,当使用后面的格式时,就会出错的,我不明白你为什么要在前面加上to_date('2003','yyyy'),我要的就是时间差啊。上面是我的理解,可是把你的语句运行一下却出现了我想不到的结果,下面是你写的语句的运行结果: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 就是当前时间,为什么会得出当前时间呢????高手指点一下吧! to_date('2003','yyyy')是取2003年1月1日0点的值,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')就得不到正确结果。 oem死活连接不上 调用一个javaSource的问题 怎么计算停车收费 帮忙看一个简单的函数,在线等 OCI能否在Define之前得到查询结果的行数result rows 求一sql语句 数据库主键问题 如何得到所有下级id啊 在sqlplus中怎样才能看到一个表的某个字段的外键关联的相关信息 求助,sql语句传到数据库少了一半。 我想购买关于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')
就得不到正确结果。