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

Como exibir uma data no formato alemão no SQL Server (T-SQL)


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).