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 に答える