Sql server 2005 删除SQL Server中的行

Sql server 2005 删除SQL Server中的行,sql-server-2005,delete-row,Sql Server 2005,Delete Row,我想删除表中Date不等于GetDate()的行,但我的查询不起作用,它表示没有受影响的行 以下是我的SQL查询: DELETE Message WHERE DateSent != (SELECT CONVERT(varchar, GETDATE(), 101)) 以下是我的选择声明: SELECT Account.Username + ' ' + '(' + convert(varchar, Message.DateSent, 101) + ')' + ':', Messa

我想删除表中
Date
不等于
GetDate()
的行,但我的查询不起作用,它表示没有受影响的行

以下是我的SQL查询:

DELETE Message 
WHERE DateSent != (SELECT CONVERT(varchar, GETDATE(), 101))
以下是我的选择声明:

SELECT 
   Account.Username + ' ' + '(' + convert(varchar, Message.DateSent, 101) + ')' + ':', 
   Message.Message, Message.samplecolumn 
FROM 
   Account 
INNER JOIN 
   Message ON Account.EmpID = Message.EmpID 
ORDER BY 
   Message.MessageID

如果
DateSent
是date,则不需要将
GETDATE()
值转换为字符串

Delete Message where CONVERT(DATETIME, DateSent, 101) <> GETDATE()
删除转换(DATETIME,DateSent,101)GETDATE()的消息
试试看

从tablename中删除
其中CONVERT(varchar,DateSent,101)CONVERT(varchar,GETDATE(),101)

这将删除所有具有其他日期的记录,而不考虑时间部分。

DateSent的类型是什么?datetime,因为我使用的是sql server 2005。您能否编辑您的问题以向我们显示哪些行应受到影响<代码>从消息中选择前10个*您在DateSent中存储的精度值?2012-01-012012-01-0122:30或…?@BrianWillis查看我的更新@Tahbaza 2013-02-19 00:00:00.000是我的sql server中的格式,因为我将日期转换为
DateTime.Now.ToShortDateString()
不幸的是,DateSent的数据类型是datetime,因为我只使用sql server 2005。我尝试了您的解决方案,但它也删除了
DateSent
等于
GETDATE
@shio的行:
CONVERT(datetime,DateSent,101)CONVERT(datetime,GETDATE(),101)
谢谢,我会尝试的。顺便说一下,
DateSent
的值是
DateTime.Now.toSortDateString()。您认为这与问题有关吗?查询仍然会删除所有日期。此查询是否选择任何行<代码>从tablename中选择CONVERT(varchar,DateSent,101),CONVERT(varchar,GETDATE(),101),其中CONVERT(varchar,DateSent,101)=CONVERT(varchar,GETDATE(),101)
DELETE FROM tablename
WHERE CONVERT(varchar, DateSent, 101)  <> CONVERT(varchar, GETDATE(), 101)