0

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

这是我的 SQL 查询:

DELETE Message 
WHERE DateSent != (SELECT CONVERT(varchar, GETDATE(), 101))

这是我的 SELECT 语句:

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
4

2 回答 2

0

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

Delete Message where CONVERT(DATETIME, DateSent, 101) <> GETDATE()
于 2013-02-19T03:23:52.890 回答
0

尝试,

DELETE FROM tablename
WHERE CONVERT(varchar, DateSent, 101)  <> CONVERT(varchar, GETDATE(), 101)

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

于 2013-02-19T05:58:47.830 回答