我有张表里面有很多记录,但是我只要获取三个月之前的记录,该表里面没有日期这一列,但是我可以通过PK去其他表里面找到日期这列,然后对日期进行运算。
select * from table1 where id in (select id from table2 where sysdate-date<90)
但是说select id from table2 where sysdate-date<90里面有多行数据。
我想请问一下,我的SQL语句是有问题的。因为sysdate-date<90这个条件选出来的日期就不对
所以我想请问一下,这个条件语句筛选三个月之前的数据时间怎么写?谢谢!
select * from table1 where id in (select id from table2 where sysdate-date<90)
但是说select id from table2 where sysdate-date<90里面有多行数据。
我想请问一下,我的SQL语句是有问题的。因为sysdate-date<90这个条件选出来的日期就不对
所以我想请问一下,这个条件语句筛选三个月之前的数据时间怎么写?谢谢!
解决方案 »
- 设计数据库
- 菜鸟,关于命令提示符进入oracle,无法输入密码,在线等
- 如何在oracle里某个表中查询是否有按某个字段创建的索引?
- oracle9i 有三张光盘,安装到百分之60的时候就过不去了, 换机器还是这样. 谢谢帮助!
- 简单的关于定时执行的存储过程的问题??
- 有没有人使用ORACLE8i + Jbuilder7 + weblogic7 开发EJB。
- 一个典型的关于ORACLE数据库中大小写的问题。
- 如果解决,我这两天发过的帖子全部给分!
- 想咨询一个关于oracle检查约束与唯一约束联用的问题
- Oracle先按周分,当周含两个月份,再按月分,怎么写SQL语句?大佬求助!!!
- Oracle数据库导入数据时候,显示成功终止导入,但出现警告,在数据库中找不到数据。
- ORACLE 上哪下?
问题解决了。呵呵。应该上面那么写。
这种写法本身就有问题,会影响效率的,至少应该这样写,date<sysdate-90
oracle有自带的函数 add_month可以用,就像4楼写的那样。add_month(sysdate,-3)这个就是三个月前的,所以可以这样写:
select * from table1 where id in (select id from table2 where date<add_month(sysdate,-3))