刚刚涉足Oracle数据库,问题是这样的,有一张广告数据表,表中有3个字段,start_time(date类型,表示广告投放日期),end_time(date类型,表示广告过期日期),expired(int类型,0表示已过期,1表示未过期),广告投放时,其状态为未过期,之后,当日期到了其投放时设定的过期时间时,就将该广告的状态变为已过期,不想通过程序去定期检测,想通过数据库的设置来完成此项功能。望大家帮忙看看,是否可行及如何实现,谢谢了先!
解决方案 »
- oracle 11g 数据迁移
- 粗糙的sql,大虾帮忙看看,优化下
- ORACLE 数据同步
- 编译一过程时,出现PLS-00103错误,怎么解决?
- 【求助】【急】关于Oracle10g里的Order by速度慢的问题
- Oracle 9i 一对多的关系查询
- 关于一个存储过程的问题
- select * from a where (rowid,oid,name,rundate) in (('...',2,'nn',null),(null,2...))类似这样的句子应该怎么写?主要是null值得应用
- 中文、英文字符集的头痛问题?? 汉字如何通过两个字符组成?
- 请问用C#连接远程Oracle数据库是否一定要在本地安装Oracle客户端???
- 那位帮帮忙,给我一个有效oracle.com.cn邀请码,多谢了
- 关于数据库设计方面的困惑
oracle job
因为本身通过start_time和end_time就可以确定广告是否已过期,为啥还要多一个字段出来表示,若两者未一致反而产生歧义了。
你在应用中查询过期的就用
select * From table where end_time<trunc(sysdate);
未过期:
select * From table where end_time>=trunc(sysdate);THS!
但是如果使用字段expired做判断条件,就只能查询当前时间点的情况,不够灵活。
还要做Trigger等许多比较麻烦的工作
sysdate 是数据库时间,你改了你的系统时间,sysdate 会变的唯一原因 是 你的数据库就在你的机器上