oracle算时间差 为什么老提示我 无效数字呢 语句如下

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle算时间差 为什么老提示我 无效数字呢 语句如下相关的知识,希望对你有一定的参考价值。

select round(to_number(sysdate - ou_users.start_time)) from ou_users

ou_users.start_time里是有值的,老是提示无效数字,从网上查的算时间差的方法就是这样啊 咋回事啊?

参考技术A 将timestamp + 0 后,转换为date,再相减:

select round(to_number(sysdate - (ou_users.start_time+0))) from ou_users追问

这个方法可行,不过为啥加个0就行了呢?能给个详细解答不?

追答

timestamp + 0 就转换 date 类型了。

或者用cast 转换:

select round(to_number(sysdate - cast(ou_users.start_time as date))) from ou_users

本回答被提问者采纳
参考技术B 检查下ou_users.start_time 的数据类型是不是日期型,不是的话先用to_date做类型转换!追问

是啊 类型是TIMESTAMP(6)

追答

TIMESTAMP和date不是一个数据类型啊!

追问

那咋办啊?

参考技术C 把starttime 转换成 date类型 因为只有两个 同时是date类型的日期才能相减 to_date()

为'YYYY-MM-DD HH:MM:SS'

以上是关于oracle算时间差 为什么老提示我 无效数字呢 语句如下的主要内容,如果未能解决你的问题,请参考以下文章

oracle 时间类型 字符转换问题

什么是“oracle ORA-01722”无效数字?

oracle 创建表提示字元无效,求高手指点迷精。

oracle 中 sql 应用case when 提示数字无效问题。高手指点迷津!!!!

oracle,插入数据,to_date('13-JUL-87')-51为啥提示“无效的月份”?

oracle数据库报无效数字?