create trigger tr_tb_i on tb before insert as update inserted set datecol = cast(substring(cast (datecol as varchar(20)),1,10)+ "00:00:00:000" as datetime)
create trigger tr_tb_i on tb before insert as update inserted set datecol = cast(substring(cast (datecol as varchar(20)),1,10)+ '00:00:00:000' as datetime)
create table test(id int,time datetime) gocreate trigger trg_test on test instead of insert,update as begin delete from test from deleted d where test.id=d.id and test.time=d.time insert into test select id,convert(char(10),time,120) from inserted end goinsert into test select 1,getdate() insert into test select 2,getdate() select * from test /* id time ----------- ------------------------------------------------------ 1 2008-06-04 00:00:00.000 2 2008-06-04 00:00:00.000 */update test set time=getdate()-1 where id=1 select * from test /* id time ----------- ------------------------------------------------------ 1 2008-06-03 00:00:00.000 2 2008-06-04 00:00:00.000 */ godrop trigger trg_test drop table test go
set @dt=getdate()
select @dt, dateadd(d, datediff(d, 0, @dt), 0)/*
----------------------- -----------------------
2008-06-04 10:43:06.787 2008-06-04 00:00:00.000(1 row(s) affected)
*/
as
update inserted set datecol = cast(substring(cast (datecol as varchar(20)),1,10)+ "00:00:00:000" as datetime)
as
update inserted set datecol = cast(substring(cast (datecol as varchar(20)),1,10)+ '00:00:00:000' as datetime)
create table test(id int,time datetime)
gocreate trigger trg_test on test
instead of insert,update
as
begin
delete from test from deleted d where test.id=d.id and test.time=d.time
insert into test select id,convert(char(10),time,120) from inserted
end
goinsert into test select 1,getdate()
insert into test select 2,getdate()
select * from test
/*
id time
----------- ------------------------------------------------------
1 2008-06-04 00:00:00.000
2 2008-06-04 00:00:00.000
*/update test set time=getdate()-1 where id=1
select * from test
/*
id time
----------- ------------------------------------------------------
1 2008-06-03 00:00:00.000
2 2008-06-04 00:00:00.000
*/
godrop trigger trg_test
drop table test
go
SELECT CONVERT(DATETIME,CONVERT(VARCHAR(10), GETDATE(), 120))------------------------------------------------------
2008-06-04 00:00:00.000
SELECT CONVERT(DATETIME,CONVERT(VARCHAR(10), GETDATE(), 120)) ------------------------------------------------------
2008-06-04 00:00:00.000
也可以直接把该字段设为smalldatetime