SQL触发器更新日期
一张表2个字段,date1,date2
输入date1,通过触发器得出DATE2
要求:如果DATE1的日<25,那么DATE2为当月25号,如果DATE1的日>=25,那么DATE2为下月25号
举例,DATE1为2011-10-10,那么DATE2为2011-10-25,DATE1为2011-11-26,那么DATE2为2012-1-25
SQL SERVER的
SQL更新日期 一张表2个字段,date1,date2 输入date1,通过触发器得出DATE2
答案:2 悬赏:0 手机版
解决时间 2021-02-07 11:19
- 提问者网友:不爱我么
- 2021-02-07 04:41
最佳答案
- 五星知识达人网友:痴妹与他
- 2021-02-07 05:47
create trigger MyTr
on 一张表
for update
as
if update(date1)
update 一张表
set date2=(
case when
day(a.date1)<25
then
cast(year(a.date1) as varchar(4))+'-'+cast(month(a.date1) as varchar(2))+'-25'
else
cast(year(adddate(mm,1,a.date1)) as varchar(4))+'-'+cast(adddate(mm,1,month(a.date1)) as varchar(2))+'-25'
end)
from inserted as a inner join 一张表 as b
on inserted.主键=b.主键
on 一张表
for update
as
if update(date1)
update 一张表
set date2=(
case when
day(a.date1)<25
then
cast(year(a.date1) as varchar(4))+'-'+cast(month(a.date1) as varchar(2))+'-25'
else
cast(year(adddate(mm,1,a.date1)) as varchar(4))+'-'+cast(adddate(mm,1,month(a.date1)) as varchar(2))+'-25'
end)
from inserted as a inner join 一张表 as b
on inserted.主键=b.主键
全部回答
- 1楼网友:北城痞子
- 2021-02-07 06:09
CREATE TRIGGER 触发器名_ins_upd
ON 表名
FOR INSERT, UPDATe
AS
IF UPDATE(Date1)
BEGIN
declare @d datetime
set @d=(select Date1 from inserted )
if DAY(@d) < 25
UPDATE inserted SET Date2=25
else if DAY(@d) >= 25
UPDATE inserted SET Date2=DATEADD(month, 1, @d)
END
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯