Eso es que la base de datos no está interpretando bien el formato de fecha que le estás pasando...
A ver... ¿Has probado a meter en la base de datos un cierto valor de fecha fijo en un determinado registro para ver si lo admite? ¿Qué dice el registro (log) de actividad del Server?
Es posible que el día y el mes estén cambiados de orden, o que no admite años con sólo dos dígitos.
Yo como no uso Microsoft ni mucho menos SQL Server, no puedo confirmar esto, pero la documentación que he leído dice que primero intenta leer una fecha en formato
ISO 8601, y luego una fecha en el formato regional que tengas definido en tu máquina.
Prueba a pasarle primero la fecha 20060621 para ver si la admite. Si sí lo hace, es mejor que te pases a procesar las fechas en formato ISO 8601.
Si no, prueba con la configuración regional de tu ordenador. Vete a Panel de Control, Configuración regional, y busca por el formato que tiene la Fecha.