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

Como exibir uma data no formato de data dos EUA no SQL Server (T-SQL)


No SQL Server, você pode usar o T-SQL FORMAT() função para exibir uma data no formato desejado. Esta função aceita um argumento opcional de “cultura”, que você pode usar para especificar o formato de data dos EUA.

Você pode ou não precisar usar esse argumento, dependendo do idioma da sua sessão local. No entanto, veja como especificar explicitamente o formato de data dos EUA.


Exemplo 1 – Formato de data abreviado nos EUA


Para especificar explicitamente que uma data deve ser exibida no formato inglês dos EUA, use en-US como o argumento da cultura:
DECLARE @thedate date = '2020-12-01'
SELECT FORMAT(@thedate, 'd', 'en-US') Result;

Resultado:
+-----------+
| Result    |
|-----------|
| 12/1/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 um formato de data dos EUA, o mês vem antes do dia.

Exemplo 2 – Formato de data longo dos EUA


Se eu mudar para um D maiúsculo , recebo um formato mais longo, com o dia e o mês escritos:
DECLARE @thedate date = '2020-12-01'
SELECT FORMAT(@thedate, 'D', 'en-US') Result;

Resultado:
+---------------------------+
| Result                    |
|---------------------------|
| Tuesday, December 1, 2020 |
+---------------------------+

Exemplo 3 – Formato de data dos EUA personalizado


Se você achar que os formatos de data acima são muito restritivos, você sempre pode especificar um formato de data personalizado. Por exemplo, se você gosta do exemplo anterior, exceto que prefere ter apenas as 3 primeiras letras do dia e do mês, você pode fazer isso:
DECLARE @thedate date = '2020-12-01'
SELECT FORMAT(@thedate, 'ddd, MMM d, yyyy', 'en-US') Result;

Resultado:
+------------------+
| Result           |
|------------------|
| Tue, Dec 1, 2020 |
+------------------+

Eu ainda especifico uma cultura mesmo especificando exatamente onde cada componente de data vai. A razão pela qual estou fazendo isso é declarar explicitamente qual idioma usar. A omissão desse argumento pode ou não causar problemas, dependendo dos idiomas usados.

O bom dos formatos de data personalizados é que eles oferecem muita flexibilidade. Você pode alternar os componentes e eles aparecerão exatamente onde você os deseja.

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