Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Conversion failed when converting date and/or time from character string.  [new]
listtoview
Member

Откуда:
Сообщений: 2126
Есть запрос:
SELECT DISTINCT t.task_id
	, t.leader_id
	, t.release_date
FROM (
	SELECT t.task_id
		, CONVERT(DATE, tp_dates.tpar_value, 104) AS release_date
		, CAST(CAST(tp_leader.tpar_text_value AS VARCHAR(128)) AS UNIQUEIDENTIFIER) AS leader_id		
	FROM Tasks AS t
		INNER JOIN TaskStates AS ts ON t.task_state = ts.tstate_id
		-- параметр дата выхода
		INNER JOIN TaskParams AS tp_dates ON tp_dates.tpar_task_id = t.task_id AND tp_dates.tpar_template IN (SELECT id FROM @tpt_dates)	
		-- параметр руководитель
		INNER JOIN TaskParams AS tp_leader ON tp_leader.tpar_task_id = t.task_id AND tp_leader.tpar_template IN (SELECT id FROM @tpt_leader)
	WHERE t.fl_deleted IS NULL		
		AND ts.tstate_flags NOT IN (16) -- не отклонена
		AND tp_dates.tpar_value IS NOT NULL
		--AND TRY_CONVERT(DATE,tp_dates.tpar_value, 104) IS NOT NULL
		AND tp_leader.tpar_text_value IS NOT NULL
		AND LEN(LTRIM(RTRIM(tp_dates.tpar_value))) > 0
		AND LEN(LTRIM(RTRIM(CAST(tp_leader.tpar_text_value AS VARCHAR(128))))) > 0	
		-- еще не отправляли
		AND NOT EXISTS(	
			SELECT el.evlg_id
			FROM EventLogs AS el 
			WHERE el.evlg_obj_id = t.task_id AND el.evlg_obj_name = @log_obj_name
		)
		-- не учитываем задачи старше 3х месяцев
		AND DATEADD(MONTH, 3, t.fl_created) >= GETDATE()
) AS t
WHERE	
	-- дата выхода сотрудника 
	(
		-- месяц
		(DATEADD(MONTH, 1, t.release_date) <= GETDATE() AND @notify_period = 1)		
			OR
		-- два
		(DATEADD(MONTH, 2, t.release_date) <= GETDATE() AND @notify_period = 2)
			OR
		-- два с половиной
		(DATEADD(DAY, 75, t.release_date) <= GETDATE() AND @notify_period = 3)
	)
	-- всем старым задачам отправляем только рассылку с 2.5 мес
	AND (
		1 = CASE WHEN @notify_period IN (1,2) AND DATEADD(DAY, 75, t.release_date) <= GETDATE() THEN 0
			ELSE 1
			END
	)
ORDER BY t.release_date DESC


Выполняется с ошибкой:
Conversion failed when converting date and/or time from character string.

Пытаюсь проверить, какая строка не конвертируется в дату:

SELECT t.task_id
		--, CONVERT(DATE, tp_dates.tpar_value, 104) AS release_date			
FROM Tasks AS t
	INNER JOIN TaskStates AS ts ON t.task_state = ts.tstate_id
	-- параметр дата выхода
	INNER JOIN TaskParams AS tp_dates ON tp_dates.tpar_task_id = t.task_id AND tp_dates.tpar_template IN (SELECT id FROM @tpt_dates)	
	-- параметр руководитель
	INNER JOIN TaskParams AS tp_leader ON tp_leader.tpar_task_id = t.task_id AND tp_leader.tpar_template IN (SELECT id FROM @tpt_leader)
WHERE 
	 TRY_CONVERT(DATE,tp_dates.tpar_value, 104) IS NULL


вижу пустой набор данных
что то тут не то
Если есть у кого какие соображения, буду благодарен
19 фев 19, 16:28    [21814503]     Ответить | Цитировать Сообщить модератору
 Re: Conversion failed when converting date and/or time from character string.  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
tp_dates.tpar_value там у вас кривые данные скорее всего
19 фев 19, 16:43    [21814533]     Ответить | Цитировать Сообщить модератору
 Re: Conversion failed when converting date and/or time from character string.  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 53633
listtoview,

убери из проверочного запроса все джойны и смотри полностью всю таблицу
19 фев 19, 16:43    [21814534]     Ответить | Цитировать Сообщить модератору
 Re: Conversion failed when converting date and/or time from character string.  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 53633
а вообще очень нехорошо хранить даты строками
19 фев 19, 16:45    [21814540]     Ответить | Цитировать Сообщить модератору
 Re: Conversion failed when converting date and/or time from character string.  [new]
listtoview
Member

Откуда:
Сообщений: 2126
andreymx
listtoview,

убери из проверочного запроса все джойны и смотри полностью всю таблицу

точно
19 фев 19, 16:49    [21814550]     Ответить | Цитировать Сообщить модератору
 Re: Conversion failed when converting date and/or time from character string.  [new]
listtoview
Member

Откуда:
Сообщений: 2126
andreymx
а вообще очень нехорошо хранить даты строками

легаси
так еще и хранятся не в UTC
19 фев 19, 16:49    [21814551]     Ответить | Цитировать Сообщить модератору
 Re: Conversion failed when converting date and/or time from character string.  [new]
listtoview
Member

Откуда:
Сообщений: 2126
вопрос снят
куча хлама всякого нашел, когда проверку убрал
19 фев 19, 16:50    [21814552]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить