Hola Royser Castañeda Garrido:
No es correcta tu opinión sobre la fecha y el format sql.
Te voy a plantear un par de ejemplos para que lo veas, y además así seguro que llegas a la solución de tu problema.
Lo primero mira lo que te dice select @@language
declare @fecha datetime = '17/09/2018'
select @fecha as [Valor de Variable], cast(@fecha as nvarchar(30)) [Mostrar fecha como caracteres]
declare @fecha2 datetime = '20180917' /*utilizando variable con standard Ansi YYYYMMDD */
select @fecha2 as [Valor ANSI], cast(@fecha2 as nvarchar(30)) [Mostrar fecha como caracteres]
SET DATEFORMAT dmy;
select @fecha as [Valor de Variable], cast(@fecha as nvarchar(30)) [Mostrar fecha como caracteres]
Supongo que la salida de las tres filas, te habrá dado el mismo resultado.

Ahora vamos a rizar un poco el ejemplo
set language English
go
Salida Changed language setting to us_english.
declare @fecha datetime = '17/09/2018'
select @fecha as [Valor de Variable],
cast(@fecha as nvarchar(30)) [Mostrar fecha como caracteres]
Salida

Vamos a hacer lo mismo con el valor en formato "ANSI"
declare @fecha2 datetime = '20180917' /*utilizando variable con standard Ansi YYYYMMDD */
select @fecha2 as [Valor ANSI],
cast(@fecha2 as nvarchar(30)) [Mostrar fecha como caracteres]
Salida

No da error, y sigue mostrando 17 de septiembre.
Ahora vamos a volver al formato con la dd/mm/yyyy pero con algo por delante.
SET DATEFORMAT dmy;
declare @fecha2 datetime = '20180917' /*utilizando variable con standard Ansi YYYYMMDD */
select @fecha2 as [Valor ANSI], cast(@fecha2 as nvarchar(30)) [Mostrar fecha como caracteres]
Observarás que la salida es correcta.
Las fechas en Sql no se guardan con formato. Son nuestras solicitudes las que utilizan el formato.
Ni tan siquiera se guardan como YYYYMMDD.
Como almacena Sql las Fechas
Ejemplo de como
trabajar fechas
Espero te ayude a ver un poco más claro el panorama.
Un saludo