0

我似乎找不到适用于我的问题的解决方案。我正在尝试通过 NVARCHAR 日期,然后将其转换。当试图解决我遇到的问题时:

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

到目前为止似乎没有任何帮助。我在谷歌和 SO 上尝试了几个建议,但我不断收到上述消息。我尝试了 SO 的这个建议,但这似乎也没有帮助。

   DECLARE @ConvertCancelDate DATETIME
    DECLARE @incCancelDate nvarchar
    SET @incCancelDate = '2018-07-04'

    -- need to convert the cancel date from nvarchar to datetime
    SET @ConvertCancelDate =  CONVERT(DATETIME, @incCancelDate)
4

2 回答 2

2

问题是您没有给出@incCancelDatea 大小,因此它假定它是单个字符串。

改变这个:

DECLARE @incCancelDate nvarchar

至:

DECLARE @incCancelDate nvarchar(10)
于 2018-08-13T20:39:58.277 回答
1

您遇到了问题,因为您没有定义 @incCancelDate 变量的长度,这意味着它是 nvarchar(1)。

要看到这个,试试这个:

DECLARE @incCancelDate NVARCHAR;
SET @incCancelDate = N'2018-07-04';
SELECT @incCancelDate;

要修复它,请执行以下操作:

DECLARE @ConvertCancelDate DATETIME;
DECLARE @incCancelDate NVARCHAR(10);
SET @incCancelDate = N'2018-07-04';

-- need to convert the cancel date from nvarchar to datetime
SET @ConvertCancelDate = CONVERT(DATETIME, @incCancelDate, 111);
于 2018-08-13T20:41:05.267 回答