sql-server - 如何在 SQL 中从用户定义的日期添加 1 天?
问题描述
我在 SQL 中的理解是,如果你从今天开始加上 1 天,你可以使用
SELECT @date = CONVERT(VARCHAR(8), DATEADD(DAY, 1, GETDATE()), 112)
但我的问题是,我没有得到今天的约会。我有一个用户定义的日期字段,我是设置此日期的人。
示例:我的列名称是“已预订退货”,我应该如何在我设置的每个预订退货中添加 1 天?
此外,如果我尝试使用 CONVERT (DATEADD, *****) 我会出现以下错误:
如何处理错误:从字符串转换日期和/或时间时转换失败。
我当前的 SELECT 语句是
SELECT dbo.AdditionalDetailInfo.UserDefined6 AS ReturnBooked
注意 UserDefined6 的数据类型是 nvarchar。:(
谢谢!
解决方案
由于您的列的数据类型是nvarchar
,Dateadd
nvarchar 上的函数将失败,所以首先您需要convert
将列值设置为datetime
然后使用该DateAdd
函数,如下所示
Select DATEADD(DAY, 1, CONVERT(Datetime,ReturnBooked))
查看示例数据的图像后,您似乎有一排日期文本格式错误08/010/2018
。此特定行的转换将失败,因此建议修复此类不良数据。