Проблема в том, что вы выполняете левое соединение таблицы со строкой, что означает, что иногда она может быть нулевой, если для строки incident
нет подходящей строки, а затем происходит сбой преобразования
Здесьодин из способов решить эту проблему
SELECT CASE WHEN s.StartMonth IS NOT NULL THEN convert(DATE, concat (s.StartMonth,'01'), 112)
ELSE null -- Or return some default value, otherwise this row can be removed
END as SubscriptionStart
FROM incident i
LEFT JOIN imcustomerid cid ON i.accountid = cid.accountid
LEFT JOIN billing_subscription s ON cid.imcustomerid = s.idcustomer
LEFT JOIN billing_subscriptiontype st ON s.idsubscriptiontype = st.id
, другой - использовать TRY_CONVERT вместо CASE, как указано в другом ответе, это зависит от того, что вы хотите вернуть, когда ноль.