Um
DateTime
é um DateTime
é um DateTime
- ele não "tem" nenhum formato (orientado a string) quando armazenado no SQL Server (é armazenado como um tamanho de 64 bits). Se você passar um parâmetro para um procedimento armazenado como um DateTime
já, você deve estar bem! O valor será armazenado pelo SQL Server sem alterando qualquer formatação - já que não possui nenhuma formatação associada a ela ... O único ponto em que a data é representada em um determinado formato de string é quando você o observa no SQL Server Management Studio ou quando o converte em um formato de string em, por exemplo, seu aplicativo .NET.
Quando você precisa de alguma forma passar uma representação de string para o SQL Server (por exemplo, para pesquisar etc.), aquele que é o mais robusto e funcionará com qualquer a configuração regional/idioma é a ISO-8601 formato de data:
YYYYMMDD
ou alternativamente (se você precisar da parte do tempo) YYYY-MM-DDTHH:MM:SS
(onde o T
no meio é um literal, separando as porções de data e hora)