注册 登录
编程论坛 SQL Server论坛

触发器出现了 奇怪的问题……

melon_water 发布于 2010-12-05 16:10, 438 次点击
这条触发器语句,我想实现的是:获取更改的日期,再用更改的日期减去该记录中的另一个字段的日期值,最后把结果插入money字段,但是这条触发器最后实现的却是: 更改的日期和第一条记录中的另一个字段的日期值相减得到的数据,然后再把数据插入money字段


use db_exam
go
create trigger money_count
on park  --表名
 update
as
declare @time_new int
declare @money int
declare @in_time datetime
declare @out_time datetime

select @in_time=in_time from park
select @out_time=out_time from park
if update(out_time)
begin
set @time_new=datediff(mi,@in_time,@out_time)  --获取的时间差
f(@time_new<=15)
   begin
      set @money=0
  end
 else
  if (@time_new>15 and @time_new<=60)
     begin
       set @money=1
      end
   else
     if(@time_new>60)

       set @money=@time_new*2
  
update park set moneya_all=@money where out_time=@out_time  --把计算的结果插入该条更改out_ime的记录中的money字段

go
2 回复
#2
cnfarer2010-12-06 09:53
问题出在:
select @in_time=in_time from park
select @out_time=out_time from park
这两条语句上,仔细考虑一下,这两个语句的查询结果吧!(适当修改就可以了)
#3
xihabang2010-12-06 14:19
   恩.同意版主观点
1