标题:请aei135老师进——关于一个日期比较的触发器。
只看楼主
arook
Rank: 1
等 级:新手上路
帖 子:45
专家分:7
注 册:2010-10-21
结帖率:94.12%
已结贴  问题点数:70 回复次数:3 
请aei135老师进——关于一个日期比较的触发器。
请问aei135老师:
    table1
 ID      PLANDATE
001     2010-12-20

我想做一个触发器,如果PLANDATE字段小于系统当天的日期,那么就改成系统当天的日期。

 我知道 select @sdate=select getdate()是错的,但是我不知道怎么弄才行~~
搜索更多相关主题的帖子: 触发器 老师 
2010-12-21 17:42
aei135
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:12
帖 子:232
专家分:1176
注 册:2009-4-6
得分:60 
你的PLANDATE什么字段类型的啦?我下面的是PLANDATE VARCAR(10)
方法一:
create trigger sdate
on table1
for update,insert
as
set nocount on
declare @sdate varchar(10)
select @sdate=convert(varchar(10),getdate(),120)
update table1 set plandate=case when inserted.plandate<@sdate then @sdate else inserted.plandate end
from table1,inserted where table1.id=inserted.id
方法二:
create trigger sdate
on table1
for update,insert
as
set nocount on
declare @sdate varchar(10)
select @sdate=convert(varchar(10),getdate(),120)
update table1 set plandate=@sdate
from table1,inserted where table1.id=inserted.id
and inserted.plandate<@sdate
2010-12-22 10:11
juejitianya
Rank: 4
等 级:业余侠客
威 望:3
帖 子:44
专家分:272
注 册:2009-9-11
得分:10 
"select @sdate=select getdate()"
应该调整为“select @sdate = getdate()”或者“set @sdate= getdate()”
2010-12-22 11:09
arook
Rank: 1
等 级:新手上路
帖 子:45
专家分:7
注 册:2010-10-21
得分:0 
多谢aei135老师,
测试了第一个,OK

业精于勤
2010-12-22 17:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-329501-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.333820 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved