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);