Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Quais configurações fornecem o formato de data e hora padrão do SQL Server?


Não faça isso! Não use strings em vez de datas e não use um formato de data ou data/hora específico da cultura, é uma receita para o desastre.

O SQL Server não tem um "formato de data", apenas os formatos que ele usa para converter datas de e para strings. Um deles é o padrão, controlado pelo agrupamento do servidor. Você não pode assumir nem deve depender de um agrupamento específico, portanto, evite conversões sempre que possível. Além disso, passar um valor de string pode impedir que o SQL Server use índices em colunas de data porque teria que converter a string para o tipo de coluna subjacente.

É muito mais fácil e seguro passar datas como variáveis ​​ou parâmetros com tipo de data. Você evita toda a confusão de conversão dessa maneira, de e para e evita ataques de injeção de SQL.

Não há razão para passar strings em vez de datas para o servidor. Todos os clientes SQL Server (incluindo ADO.NET) permitem que você execute consultas parametrizadas. ORMs como NHibernate e Entity Framework também geram consultas parametrizadas para colunas com tipo de data.

Sempre que você precisar criar um literal de string, use um dos formatos invariáveis ​​como 20140913 ou 2012-11-07T18:26:20

Você pode ler mais sobre isso em Escrevendo declarações T-SQL internacionais