Consulta string-datetime

Hola experto un saludo, bueno quisiera que me ayudaras con esta consulta, el problemas esta en el convert, pero no le encuentro el error, haber si me puedes ayudar, gracias. Es para ver si algunos contratos vencen en los próximos: de 16 a 30 días.
Select Contact1.company as empresa,
contsupp.linkacct as Vence,
contsupp.contsupref as Producto,
contsupp.country as No_serie,
contact1.key2 as Atiende,
convert(datetime,(substring(contsupp.linkacct,1,4)+ substring(contsupp.linkacct,6,2)+ substring(contsupp.linkacct,9,2)))as fechabandera, datediff(month,getdate(),convert(datetime,(substring(contsupp.linkacct,1,4)+ substring(contsupp.linkacct,6,2)+ substring(contsupp.linkacct,9,2)))) as diferencia
from contact1, Contsupp
where contsupp.contact='Mantenimiento' and contact1.accountno=contsupp.accountno
and
datediff(month,getdate(),convert(datetime,(substring(contsupp.linkacct,1,4)+ substring(contsupp.linkacct,6,2)+ substring(contsupp.linkacct,9,2)))) >= 0.5 and
datediff(month,getdate(),convert(datetime,(substring(contsupp.linkacct,1,4)+ substring(contsupp.linkacct,6,2)+ substring(contsupp.linkacct,9,2)))) <= 1
order by Vence, Company
Respuesta
No me quiero echar un clavado en tu consulta (kilométrica por cierto) pero te paso la solución a la consulta de fechas:
DATEDIFF(mi, Fecha, GETDATE())
DATEDIFF(dd, Fecha, GetDate())
El primero te da la diferencia en minutos y el segundo en días
Y al parecer si tienes mal las fechas, no entiendo porque te quieres complicar sacando las fechas con substrings pero cada quien con su razonamiento.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas