首页 > 解决方案 > 如何在 SQL 中从用户定义的日期添加 1 天?

问题描述

我在 SQL 中的理解是,如果你从今天开始加上 1 天,你可以使用

SELECT @date = CONVERT(VARCHAR(8), DATEADD(DAY, 1, GETDATE()), 112) 

但我的问题是,我没有得到今天的约会。我有一个用户定义的日期字段,我是设置此日期的人。

示例:我的列名称是“已预订退货”,我应该如何在我设置的每个预订退货中添加 1 天?

见附件:SQL Server 结果

此外,如果我尝试使用 CONVERT (DATEADD, *****) 我会出现以下错误:

如何处理错误:从字符串转换日期和/或时间时转换失败。

我当前的 SELECT 语句是

SELECT dbo.AdditionalDetailInfo.UserDefined6 AS ReturnBooked

注意 UserDefined6 的数据类型是 nvarchar。:(

谢谢!

标签: sql-server

解决方案


由于您的列的数据类型是nvarcharDateaddnvarchar 上的函数将失败,所以首先您需要convert将列值设置为datetime然后使用该DateAdd函数,如下所示

Select DATEADD(DAY, 1, CONVERT(Datetime,ReturnBooked))

查看示例数据的图像后,您似乎有一排日期文本格式错误08/010/2018。此特定行的转换将失败,因此建议修复此类不良数据。


推荐阅读