社区
基础和管理
帖子详情
Oracle数据表自动更新
crossfile
2011-05-12 04:34:24
刚刚涉足Oracle数据库,问题是这样的,有一张广告数据表,表中有3个字段,start_time(date类型,表示广告投放日期),end_time(date类型,表示广告过期日期),expired(int类型,0表示已过期,1表示未过期),广告投放时,其状态为未过期,之后,当日期到了其投放时设定的过期时间时,就将该广告的状态变为已过期,不想通过程序去定期检测,想通过数据库的设置来完成此项功能。望大家帮忙看看,是否可行及如何实现,谢谢了先!
...全文
271
20
打赏
收藏
Oracle数据表自动更新
刚刚涉足Oracle数据库,问题是这样的,有一张广告数据表,表中有3个字段,start_time(date类型,表示广告投放日期),end_time(date类型,表示广告过期日期),expired(int类型,0表示已过期,1表示未过期),广告投放时,其状态为未过期,之后,当日期到了其投放时设定的过期时间时,就将该广告的状态变为已过期,不想通过程序去定期检测,想通过数据库的设置来完成此项功能。望大家帮忙看看,是否可行及如何实现,谢谢了先!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cxx1997
2011-07-12
打赏
举报
回复
[Quote=引用 16 楼 jxlhc09 的回复:]
引用 14 楼 cxx1997 的回复:
select * From table where end_time<trunc(sysdate);
中sysdate 是数据库时间,不是你本机时间,不会出现“如果你登录管理系统的机器(与服务器不是同一台机器)时间有误”
刚才试了下。。我只要更改了我的系统时间sysdate也就会跟着改了的
[/Quote]
sysdate 是数据库时间,你改了你的系统时间,sysdate 会变的唯一原因 是 你的数据库就在你的机器上
crossfile
2011-06-07
打赏
举报
回复
最终采取的方案,通过后台服务器,去定时更新数据。
toadzw
2011-05-31
打赏
举报
回复
意见:不要使用JOB,你可以在数据展现的时候再来判断,如果你是为了加速数据查询速度的,那么可以考虑使用JOB,不然只要在数据展现时比较一下,延迟这种计算比较好,节省资源,叫延迟计算
BetterMe
2011-05-31
打赏
举报
回复
[Quote=引用 16 楼 jxlhc09 的回复:]
引用 14 楼 cxx1997 的回复:
select * From table where end_time<trunc(sysdate);
中sysdate 是数据库时间,不是你本机时间,不会出现“如果你登录管理系统的机器(与服务器不是同一台机器)时间有误”
刚才试了下。。我只要更改了我的系统时间sysdate也就会跟着改了的
[/Quote]
sysdate...sys=system,怎么会不是系统时间?........还有实在不明白trunc(sysdate)什么意思,好歹加上[FMT]吧?再者如果只是为了判断是否过期,直接日期比较就可以,通过存储过程来实现update
cxx1997
2011-05-27
打赏
举报
回复
select * From table where end_time<trunc(sysdate);
中sysdate 是数据库时间,不是你本机时间,不会出现“如果你登录管理系统的机器(与服务器不是同一台机器)时间有误”
crossfile
2011-05-27
打赏
举报
回复
说的有道理,但是select * From table where end_time<trunc(sysdate);如何在程序中使用这个方法,会存在弊病,对于数据库会有个管理系统,如果你登录管理系统的机器(与服务器不是同一台机器)时间有误,那你查询的结果是不是就有误了?
randee_luo
2011-05-27
打赏
举报
回复
[Quote=引用 14 楼 cxx1997 的回复:]
select * From table where end_time<trunc(sysdate);
中sysdate 是数据库时间,不是你本机时间,不会出现“如果你登录管理系统的机器(与服务器不是同一台机器)时间有误”
[/Quote]
刚才试了下。。我只要更改了我的系统时间sysdate也就会跟着改了的
hawei6
2011-05-27
打赏
举报
回复
这里的系统时间只是一个参数,看你应用怎么传递了,你可以在你的应用中先把系统时间转成一般的日期格式再传进来的,并不是一定要用oracle中的系统时间。
[Quote=引用 13 楼 crossfile 的回复:]
说的有道理,但是select * From table where end_time<trunc(sysdate);如何在程序中使用这个方法,会存在弊病,对于数据库会有个管理系统,如果你登录管理系统的机器(与服务器不是同一台机器)时间有误,那你查询的结果是不是就有误了?
[/Quote]
hawei6
2011-05-26
打赏
举报
回复
应用如果使用end_time作为判断条件,就可以查询历史上或未来任何时间点的过期与为过期的广告。
但是如果使用字段expired做判断条件,就只能查询当前时间点的情况,不够灵活。
还要做Trigger等许多比较麻烦的工作
hawei6
2011-05-26
打赏
举报
回复
个人感觉你的数据库表设计的就有问题,既然你表中有了end_time标示过期时间,那么字段expired就是多余的。
你在应用中查询过期的就用
select * From table where end_time<trunc(sysdate);
未过期:
select * From table where end_time>=trunc(sysdate);
THS!
lovecmcmcm
2011-05-26
打赏
举报
回复
写个过程,传入当前时前,与过期时间做个对比,如果系统时间大于过期时间时写个UPDATE语句就OK了。
JOB可以定在每天临晨:00点运行。
crossfile
2011-05-25
打赏
举报
回复
设计expired字段,是为了使用该模块数据的程序无需判断,可直接查询获取所需数据。
「已注销」
2011-05-23
打赏
举报
回复
从设计上课用不着expired字段,这是个冗余字段,
因为本身通过start_time和end_time就可以确定广告是否已过期,为啥还要多一个字段出来表示,若两者未一致反而产生歧义了。
crossfile
2011-05-23
打赏
举报
回复
说了半天,还是云里雾里啊……
crossfile
2011-05-19
打赏
举报
回复
哦,Oracle Job
无锡阔微信息科技
2011-05-19
打赏
举报
回复
[Quote=引用 1 楼 shadow1986a 的回复:]
当然可行了。 先建个过程用来修改这个标记。然后把这个过程提交到一个job中每天定时执行一次就行了
[/Quote]
顶
304的的哥
2011-05-13
打赏
举报
回复
oracle job
crossfile
2011-05-13
打赏
举报
回复
能够具体的讲解下吗?
cncmaxcnc
2011-05-12
打赏
举报
回复
可行。关键技术是建个过程和JOB。
shadow1986a
2011-05-12
打赏
举报
回复
当然可行了。 先建个过程用来修改这个标记。然后把这个过程提交到一个job中每天定时执行一次就行了
Oracle
从入门到精通(二):表空间管理
在后续的
Oracle
数据库版本中,
Oracle
继续简化了客户在云中标准化,整合和
自动
化数据库服务的工作。这个平台继续推动着业界领先的云数据库的未来版本,包括
Oracle
Database 18c和现在的
Oracle
Database 19c。本课程...
ORACLE
表空间
自动
扩展
alter database datafile ‘数据文件位置’ autoextend on next
自动
扩展大小 maxsize 最大扩展大小;alter tablespace 表空间名称 add datafile ‘新的数据文件位置’ size 数据文件大小;查看表空间及其数据文件位置...
oracle
自动
更新
日期
oracle
自动
更新
日期 原文链接: 折花载酒少年事.
oracle
插入,
更新
自动
设置当前时间 1.建表语句 create table userinfo( id varchar2(32) not null primary key, name varchar2(200) , age int , create_time date ...
Oracle
表与表数据操作
Oracle
表与表数据操作表结构和数据类型表和表结构数据类型表结构设计创建和操作表空间创建和操作表创建表基本的增删改查 表结构和数据类型 表和表结构 表是日常工作和生活使用的一种表示数据以及关系的形式。如图为...
【
Oracle
】—— 自增 ID和
自动
修改
更新
日期与行版本号
最近需要在
oracle
中添加一张表TEST_A,用于存储一些管理数据,主要的字段如下: TAG,OBJ_ALIAS字段和OBJ_NAME这三个字段为必填内容, 插入数据时ID自增,CREATEDON、LAST_UPDATED_ON
自动
填入数据插入时的时间,...
基础和管理
17,377
社区成员
95,127
社区内容
发帖
与我相关
我的任务
基础和管理
Oracle 基础和管理
复制链接
扫一扫
分享
社区描述
Oracle 基础和管理
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章