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)