DATEDIFF怎么用oracle的函数替换掉?

shenshengzhiwen 2014-09-03 02:10:59
一个sqlserver语句:select ( DATEDIFF(d ,CONVERT(DATETIME,t.column1) ,CONVERT(DATETIME,GETDATE()) ) ) from table t;谁能帮我转换成在oracle能运行的格式吗?一定要改对哦。
...全文
495 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
bw555 2014-09-03
  • 打赏
  • 举报
回复
想了想都不太合适 把两个日期的小时分秒都截掉,再相减,这样可能更合适一点,结果取出来直接是整数
select trunc(sysdate)-trunc(t.column1) from table t
shenshengzhiwen 2014-09-03
  • 打赏
  • 举报
回复
那个字段是日期类型的。DATEDIFF(d ,CONVERT(DATETIME,t.column1) ,CONVERT(DATETIME,GETDATE()) ) 这个你帮我分析一下应该用哪个函数?是用round吗?
bw555 2014-09-03
  • 打赏
  • 举报
回复
函数选哪个需要根据业务逻辑了,日期直接做减法结果就是两个日期点间隔的天数,带小数点的
bw555 2014-09-03
  • 打赏
  • 举报
回复
COLUMN1的类型是日期类型吗?如果是char型数据还需要to_date一下 下面语句是将间隔天数四舍五入的结果
select round(sysdate-t.column1) from table t
shenshengzhiwen 2014-09-03
  • 打赏
  • 举报
回复
如果可以改成select round(sysdate-t.column1) from table t;的话, 其中函数式用round,trunc,ceil,floor中的哪个?
shenshengzhiwen 2014-09-03
  • 打赏
  • 举报
回复
引用 楼主 shenshengzhiwen 的回复:
一个sqlserver语句:select ( DATEDIFF(d ,CONVERT(DATETIME,t.column1) ,CONVERT(DATETIME,GETDATE()) ) ) from table t;谁能帮我转换成在oracle能运行的格式吗?一定要改对哦。
帮忙改下那个SQL啊? 是不是能写成select round(sysdate,t.column1) from table t;
bw555 2014-09-03
  • 打赏
  • 举报
回复
假设 startdate、enddate为表T的date类型的字段 可以直接这样写
select enddate-startdate from T
shenshengzhiwen 2014-09-03
  • 打赏
  • 举报
回复
帮忙改下那个SQL啊?
bw555 2014-09-03
  • 打赏
  • 举报
回复
两个日期直接做减法,就是两个日期相差的天数

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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