繁体   English   中英

从 sql 服务器中的字符串转换日期时转换失败

[英]Conversion failed when converting date from character string in sql server

Declare @count varchar(max)
Select @count=configurable from configurableitems where project='auto'
Delete from detaillog where createdtime<convert(date,getdate()-@count)

我收到错误:

从字符串转换日期和/或时间时转换失败

正如我在评论中提到的,以上没有多大意义。 datetime中减去最多 20 亿个字符的varchar值是没有意义的。 @Count这样的名称也暗示了一个数值。 也许@count应该是一个int

接下来,在日期上加减并没有多大意义。 例如2020-12-06T13:05:00:123 - 3是什么? 减3什么 尽管此语法适用于较旧的(small)datetime时间数据类型,但不适用于新的日期和时间数据类型。 如果要从日期和时间值中添加/减去间隔,请使用DATEADD

也许你想要的是这样的:

DECLARE @count int;

SELECT @count = configurable
FROM configurableitems
WHERE project = 'auto';

DELETE FROM detaillog
WHERE createdtime < CONVERT(date, DATEADD(DAY,-@Count,GETDATE());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM