求解:SQL Server时间函数在Oralce的使用方法

beret 2005-09-23 03:32:29
SQL Server语句:
select DATEDIFF([s], OpenTime, GETDATE()) from UserTable

转换成Oralce应该如何写?


select (OpenTime-Sysdate) from UserTable
我用直接减得出来的是一个时间型的数.请问如何可以转换为秒数的方式.谢谢!
...全文
122 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
beret 2005-09-23
  • 打赏
  • 举报
回复
谢谢了。感谢大家帮助。结贴。
waterfirer 2005-09-23
  • 打赏
  • 举报
回复
这样应该没问题
select (Sysdate-to_date(to_char(OpenTime,'yyyymmdd hh24:mi:ss'),'yyyymmdd hh24:mi:ss'))*24*3600 from UserTable
好像还有别的办法,我再找找
beret 2005-09-23
  • 打赏
  • 举报
回复
而且我调用dinya2003(OK)的:select sysdate - to_date('2005-08-31 03:34:00','yyyy-mm-dd hh24:mi:ss') from dual

返回是:2.35560763888888888888888888888888888889E01
这怎么回事啊.我用的是Oralce10.1版本的.
beret 2005-09-23
  • 打赏
  • 举报
回复
我的OpenTime的类型如下: TimeStamp default sysdate
dinya2003 2005-09-23
  • 打赏
  • 举报
回复
select sysdate - to_date('2005-08-31 03:34:00','yyyy-mm-dd hh24:mi:ss') from dual

23.52974537037037037037037037037037037037

两个日期直接相减,值单位为:天 ,然后根据需要处理小数位.
waterfirer 2005-09-23
  • 打赏
  • 举报
回复
但我得出来的数是"2654 0:0:0.0"
--------
奇怪,你看到dinya2003(OK)的结果了吗,*24*3600后应该是整数,你的怎么是这样结果?
OpenTime是什么值?
beret 2005-09-23
  • 打赏
  • 举报
回复
Select substr(to_char((Sysdate-OpenTime)*24*3600),7,4) m from UserTable

这样就可以得到想要的秒数了吧?
dinya2003 2005-09-23
  • 打赏
  • 举报
回复
select sysdate - to_date('2005-08-31 03:34:00','yyyy-mm-dd hh24:mi:ss') from dual

23.52974537037037037037037037037037037037

两个日期直接相减,值单位为:天 ,然后根据需要处理小数位.
beret 2005-09-23
  • 打赏
  • 举报
回复
谢谢waterfirer(水清),

但我得出来的数是"2654 0:0:0.0",这个是数值型吗?因为我想将得出来的数做一个判断.
waterfirer 2005-09-23
  • 打赏
  • 举报
回复
按你sqlserver的写法应该
select (Sysdate-OpenTime)*24*3600 from UserTable
waterfirer 2005-09-23
  • 打赏
  • 举报
回复
select (OpenTime-Sysdate)*24*3600 from UserTable

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧