添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
Oracle 帖子详情

oracle 如何查询 当前时间之前的几天 ?

finalsyo 2008-04-09 10:31:49
我想查询 以当前数据库时间(sysdate)为基点, 6天前到3天前的数据 应该怎么写呢?
比如说今天是 08.04.09 , 那么我想查出 08.04.03 - 08.04.05
...全文
4400 5 打赏 收藏
用AI写文章
5 条 回复
切换为时间正序
请发表友善的回复…
发表回复
finalsyo 2008-04-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 doer_ljy 的回复:]
首先假设你的表名叫做tablename,然后又一个字段记录了更新时间。
你要查询更新时间在前六天到前三天的数据。
select * from tablename
where updatedate > sysdate -6 and updatedate < sysdate -3
[/Quote]
谢谢
hebo2005 2008-04-09
  • 打赏
  • 举报
回复
其实最好是这样的between trunc(sysdate)-6 and trunc(sysdate)-4+0.99999
这样就是从6天前的0点到4天前的23:59:59秒
>=trunc(sysdate)-6 and <trunc(sysdate)-3
为什么要用trunc(sysdate)呢
因为当前时间一般不会正好是0点,比如当前是11点,-6就是6天前的11 点开始
liulif 2008-04-09
  • 打赏
  • 举报
回复
你只要在Where后加一个条件就可以了啊。
具体是Where 时间字段>=to_date('2008-04-03 00:00:00','yyyy-mm-dd hh24:mi:ss')-6 AND 时间字段<=to_date('2008-04-03 00:00:00','yyyy-mm-dd hh24:mi:ss')-4
别的都一样的,其实Oracle时间格式只要转换一次就行了,跟别的条件一样的。
但是注意一下你的字段是否是日期型
hebo2005 2008-04-09
  • 打赏
  • 举报
回复
between sysdate-6 and sysdate-4
doer_ljy 2008-04-09
  • 打赏
  • 举报
回复
首先假设你的表名叫做tablename,然后又一个字段记录了更新时间。
你要查询更新时间在前六天到前三天的数据。
select * from tablename
where updatedate > sysdate -6 and updatedate < sysdate -3
Oracle 17,125 55,256

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员