nvarchar дата не будет преобразована в дату и время

Я не могу найти подходящее решение для моей проблемы. Я пытаюсь пройти через дату NVARCHAR и затем преобразовать это. При попытке решить проблему, я получаю:

Ошибка преобразования при преобразовании даты и / или времени из символьной строки.

Ничто, кажется, не помогает до сих пор. Я попробовал несколько предложений вокруг Google и на 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)

2 ответа

Решение

Проблема в том, что вы не даете @incCancelDate размер, так что он предполагает одну строку символов.

Изменить это:

DECLARE @incCancelDate nvarchar

Для того, чтобы:

DECLARE @incCancelDate nvarchar(10)

У вас проблема, потому что вы не определили длину для вашей переменной @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);
Другие вопросы по тегам