请问怎么删除同一天的所有记录 数据行保存的有当时操作的系统时间
RT
数据表有个列TrnDate(比如2013-01-10 10:13:10.000)是当时操作时的系统时间
现在我想删除 1/10/2013 这一天的所有记录,请问怎么实现?
当然还有其它的一些条件where条件。
sql
------解决方案--------------------where convert(varchar(10),TrnDate,126)='2013-01-10'
------解决方案--------------------WHERE TrnDate>='2013-01-10' and TrnDate<'2013-01-11'
------解决方案--------------------
delete 表 where TrnDate >='2012-01-10' and TrnDate < '2012-01-11'
楼主,请注意一点,类似这种语句时,不要在=号左面的列上记性函数运算,比如:
delete 表 where convert(varchar(20,)TrnDate,23) ='2012-01-10'
会导致索引使用率低下的问题,这个有点跑题,在书写意识上加以强化肯定米有坏处~
------解决方案--------------------delete 表 where datediff(dd,TrnDate,'2013-01-10 10:13:10.000')=0
------解决方案--------------------同上
不过用datename() 和 datepart() 也可以不过要麻烦一点!看你自己喜欢咯!
------解决方案--------------------我觉得大家理解的不对.
create table tab(TrnDate datetime)
insert tab
select '2012-01-10 02:22:23.000' union all
select '2012-02-10 02:21:23.000' union all
select '2012-03-10 02:23:23.000' union all
select '2012-05-10 02:25:23.000' union all
select '2013-01-12 02:22:23.000'
--删除当天记录
delete from tab where datepart(dd,TrnDate)=DATEPART(dd,GETDATE())
drop table Tab