
sysdate是日期型的,日期型可以直接加减天数得到新的日期, 如 sysdate+1,sysdate-1,当天是本月第一天的时候你减一就是上月最后一天,你不要担心ORACLE会给你减出个非法日期,当然你使用中转其他类型时最好加上括号如(sysdade-1)防止运算顺序错误造成意外的结果。
可以设置几个字段来设置,,
第一个,初试生命值
第二个,生命开始减少初始时间
第三个,每秒减少生命
第四个, *** 作增加生命值 或者减少生命值( *** 作生命)
然后 根据这三个数据来判断假如实现秒减的话 对数据库 *** 作太频繁了很容易引起数据库崩溃
比如说 ,我们另外放个虫子,则重新设置初始生命或者 *** 作生命并且 每秒减少生命增加
生命开始减少初始时间改变
第一个字段和第四个字段可以放到一个字段里面也行
大概原理就这样
你好,很高兴回答你的问题。
这个功能不是简单一个sql可以实现的。
是要通过一套逻辑来完成。
先按照时间升序查询还没有抵扣完调休时间的一条记录。
把这条记录进行扣减,并按照需要做记录。
如果这条记录还不足以抵扣,则再继续查询,做抵扣。
如此逻辑,一直到抵扣完成。
如果有帮助到你,请点击采纳。
我以前收藏的,你看看自己写吧
create function f_getID()
returns int
as
begin
return(select isnull(max(id),0)+1 from tb)
end
go
--创建表
create table tb(id int primary key default dbof_getID() ,name varchar(20))
go
--创建触发器,在删除表中的记录时,自动更新记录的id,解决断号的烦恼
create trigger t_s_duanhao on tb
AFTER delete
as
declare @mid int
select @mid=min(id)-1
from deleted
update tb
set id=@mid,@mid=@mid+1
where id>@mid+1
go
--插入记录测试(只能一条条记录插入)
insert into tb(name) values('1哥')
insert into tb(name) values('2哥')
insert into tb(name) values('3哥')
insert into tb(name) values('4哥')
insert into tb(name) values('5哥')
insert into tb(name) values('6哥')
insert into tb(name) values('7哥')
insert into tb(name) values('8哥')
--显示插入的结果
select from tb
--删除部分记录
delete from tb where name in('1哥','4哥','7哥','8哥')
--显示删除后的结果
select from tb
以上就是关于Oracle数据库如何增加或减少日期值的天数全部的内容,包括:Oracle数据库如何增加或减少日期值的天数、数据库字段 实现秒减、每天有不同时长的调休,sql中怎么扣减等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)