Msg 241, уровень 16, состояние 1, строка 1 преобразование не удалось при преобразовании даты и / или времени из символьной строки.
Это мой запрос , когда я выполняю запрос, я получаю этот erorr:
Msg 241, Уровень 16, состояние 1, строка 1 преобразование не удалось при преобразовании даты и / или времени из символьной строки.
И для того, чтобы найти проблему, я проверил и проверил каждый функция DateDiff в моем запросе
и я ничего не нахожу ! может быть, я ошибаюсь ,может быть, есть что-то, чего я просто не вижу ,
итак, может кто-нибудь, пожалуйста, помочь и указать мне правильное направление. Спасибо.
SELECT X, X + ' ' + X AS X, X AS X, CASE WHEN X IS NOT NULL THEN DATEDIFF(YEAR,CONVERT(date,STUFF(LEFT(X, 4), 3, 0, '.') + '.' + CAST(DATEPART(YEAR, GETDATE()) / 100 - 1 as char(2)) + SUBSTRING(X, 5, 2), 104) , GETDATE()) ELSE NULL END As X , (CASE WHEN right(rtrim(X), 1) IN ('1', '3', '5', '7', '9') THEN 'M' WHEN right(rtrim(X), 1) IN ('2', '4', '6', '8', '0') THEN 'K' END) as X, Convert(varchar(10), X, 104) AS X , (CASE WHEN X IS NOT NULL THEN CAST(DATEDIFF(YEAR, X, X) as VARCHAR(255)) ELSE (CAST(DATEDIFF(year, X, GETDATE()) AS varchar(4)) +' year ' + CAST(DATEDIFF(month, DATEADD(year, DATEDIFF(year, X, GETDATE()), X), GETDATE()) AS varchar(2)) +' month ' + CAST(DATEDIFF(day, DATEADD(month, DATEDIFF(month, DATEADD(year, DATEDIFF(year, WorkStartDate, GETDATE()), WorkStartDate), GETDATE()), DATEADD(year, DATEDIFF(yy, WorkStartDate, GETDATE()), WorkStartDate)), GETDATE()) AS varchar(2)) +' day' ) END) as X, X AS Afdelinger FROM Y INNER JOIN Y ON Y=Y WHERE Y order by Y;
Что я уже пробовал:
я проверил и проверил каждый DATEDIFF в своем запросе