Ao formatar uma data usando o
FORMAT()
função no SQL Server, a data será formatada de acordo com o idioma da sua sessão local. No entanto, você pode substituir isso especificando uma cultura a ser usada ou usando um formato de data personalizado. Este artigo demonstra como especificar explicitamente um formato de data alemão usando o argumento opcional “culture” do
FORMAT()
função. Ele também demonstra como usar seu próprio formato de data personalizado, se isso for mais desejável. Exemplo 1 – Formato de data curto em alemão
Para especificar explicitamente que uma data deve ser exibida no formato alemão, use
de-de
como terceiro argumento. Este terceiro argumento (opcional) especifica qual cultura usar. DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'd', 'de-de') Result;
Resultado:
+------------+ | Result | |------------| | 01.12.2020 | +------------+
Neste caso, usei um
d
minúsculo como segundo argumento. Isso resulta em um formato de data relativamente curto, com o dia e o mês sendo exibidos como números. E como estamos usando o formato alemão, o dia vem antes do mês e cada componente de data é separado por pontos.
Exemplo 2 – Formato de data longo em alemão
Você pode alterar o segundo argumento para um
D
maiúsculo para resultar em um formato de data mais longo, com o mês escrito:DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'D', 'de-de') Result;
Resultado:
+----------------------------+ | Result | |----------------------------| | Dienstag, 1. Dezember 2020 | +----------------------------+
Exemplo 3 – Formato de data alemão personalizado
Você também pode usar um formato de data personalizado, se necessário. Isso permite que você declare explicitamente como e onde cada componente de data vai.
Exemplo:
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'ddd, d. MMM, yyyy', 'de-de') Result;
Resultado:
+------------------+ | Result | |------------------| | Di, 1. Dez, 2020 | +------------------+
Nesse caso, ainda uso o argumento culture para especificar explicitamente qual idioma usar.
Meu sistema atualmente usa o inglês dos EUA, portanto, se eu omitir o argumento de cultura deste exemplo, recebo o seguinte:
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'ddd, d. MMM, yyyy') Result;
Resultado:
+-------------------+ | Result | |-------------------| | Tue, 1. Dec, 2020 | +-------------------+
Verificando sua sessão atual
Ao usar o
FORMAT()
função, se o argumento de cultura não for fornecido, o idioma da sessão atual será usado. Este idioma é definido implicitamente ou explicitamente usando o SET LANGUAGE
demonstração. Para obter mais informações, aqui estão 3 maneiras de obter o idioma da sessão atual no SQL Server (T-SQL).
Consulte também Como definir o idioma atual no SQL Server (T-SQL).