Oracle DateTime相减

czyhsl 2010-06-28 02:38:39
SELECT CORP_NAME,
START_TIME,
END_TIME,
(TO_DATE('2010-6-26 19:12:02', 'yyyy-MM-dd hh24:mi:ss') -
TO_DATE('2010-6-26 15:37:02', 'yyyy-MM-dd hh24:mi:ss')) * 24 as "TIME_INTERVAL",
REMARK
FROM T_B_PHD_RECORD
WHERE START_TIME >= TO_DATE('2010-6-26 15:37:02', 'yyyy-MM-dd hh24:mi:ss')
AND END_TIME <= TO_DATE('2010-6-26 19:12:02', 'yyyy-MM-dd hh24:mi:ss')
AND END_TIME IS NOT NULL;

现在我还想在查询中添加一个条件:"TIME_INTERVAL" 就是这一列(比如:间隔时间大于2)的所有记录,麻烦大家帮帮忙哈~
...全文
379 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wbin_ndsc 2010-08-13
  • 打赏
  • 举报
回复
那就在外面再套一层
select CORP_NAME, START_TIME, END_TIME, TIME_INTERVAL, REMARK from (你的查询) where TIME_INTERVAL > 2
估计你不喜欢
czyhsl 2010-06-29
  • 打赏
  • 举报
回复
time_interval这一列是end_time - start_time,具体时间只是测试下,可以传参。现在我的问题就是:在where后加 AND time_interval > 2总是提示标识符无效。

像2楼 hyx972 所说:把这列重写一遍没问题的,我现在就是不想把这么长的字符串再写一遍
wildoracle 2010-06-28
  • 打赏
  • 举报
回复
我看你上面的sql得出来的time_interval这一列应该是固定了吧,你都写成to_date具体时间了还能等于别结果么

那两个是个什么样的字段吧,如果是start_time 和end_time.楼上哥们的可以解决你的问题.

也可以用个子查询, where time_interval > 2
zhizhuo89 2010-06-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hyx972 的回复:]
And (END_TIME-START_TIME)*24>2

不知道要的是不是这个效果。
[/Quote]

正解!因为两个日期相减得出天数,再乘以24为小时!
hyx972 2010-06-28
  • 打赏
  • 举报
回复
And (END_TIME-START_TIME)*24>2

不知道要的是不是这个效果。
czyhsl 2010-06-28
  • 打赏
  • 举报
回复
间隔时间大于2 改为:间隔时间大于2小时

17,082

社区成员

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

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