select * from 表 where getdate() between '生效时间' and isnull('失效时间','--@@@--')----@@@--要是空的需要看到,这里就写'9999-99-99',否则'0000-00-00'
解决方案 »
- insert into table a select * from table b 大数据量怎么办
- SqlServer2005的表值函数如何转换成ORACLE下的函数。急!!!
- alter database 添加一个数据文件后能否回滚?
- 这个错误看了很久也不知道怎么解决,请帮帮忙啊??
- 又一个开发中碰到的Oracle错误,请教如何解决,谢谢
- sqlldr数据导入工具问题
- 如何保存SQL执行历史呀?
- 神阿,救救我吧!急
- 又要用ORACLE数据库了,可否帮我推荐本比较好的书呢?
- oracle触发器,表多行转置插入一行多列,急!!!
- 求指导一下这个oracle题目,谢谢!!
- 急急急!!!在linux上安装oracle11g的问题
空的话怎么处理?
空的话值查询生效时间
我感觉是不是要分两部分查询然后用union连接
先把失效时间为空的查询来 然后再给外面加一个生效时间的条件
然后把生效时间和失效时间都不为空的查询出来 再给外面加上大于等于生效时间小于等于失效时间
然后连接 不知道对不对
select * from table
where sysdate >= start_time
and ((sysdate <= end_time and end_time is not null) or end_time is null)--start_time生效时间 end_time失效时间
oracle 好像没 isnull 用decode判断吗
oracle 好像没 isnull 用decode判断吗
oracle 好像没 isnull 用decode判断吗
受你启发 搞定
AND SYSDATE >= A.EFF_DATE
AND SYSDATE <= DECODE(A.EXP_DATE,NULL,TO_DATE('9999-01-01','YYYY-MM-DD HH24:MI:SS'),A.EXP_DATE)
不过说起来decode到底有多慢呢
不过说起来decode到底有多慢呢看数据量啦~~慢的话就再想别的办法喽!