nvarchar日期不会转换为日期时间

时间:2018-08-13 20:31:23

标签: sql-server datetime-format sql-convert

我似乎找不到适合我问题的解决方案。我试图通过一个NVARCHAR日期,然后将其转换。当尝试解决我遇到的问题时,我会得到:

  

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

到目前为止,似乎没有任何帮助。我尝试过围绕google和SO的一些建议,但我不断收到上述消息。我从SO尝试过this suggestion,但似乎也无济于事。

   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)

2 个答案:

答案 0 :(得分:2)

问题是您没有给@incCancelDate设置大小,因此它假定其为单个字符串。

更改此:

DECLARE @incCancelDate nvarchar

收件人:

DECLARE @incCancelDate nvarchar(10)

答案 1 :(得分: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);