日期:2014-05-17  浏览次数:20514 次

请问怎么删除同一天的所有记录 数据行保存的有当时操作的系统时间
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