SQL  -  Exibindo formatos de datas em diversas línguas

 Neste artigo vou mostrar como exibir formatos de datas em diversas línguas no SQL Server.

Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é a linguagem de pesquisa declarativa padrão para banco de dados relacional (base de dados relacional). Muitas das características originais do SQL foram inspiradas na álgebra relacional.

A linguagem é um grande padrão de banco de dados. Isto decorre da sua simplicidade e facilidade de uso. Ela se diferencia de outras linguagens de consulta a banco de dados no sentido em que uma consulta SQL especifica a forma do resultado e não o caminho para chegar a ele. Ela é uma linguagem declarativa em oposição a outras linguagens procedurais. Isto reduz o ciclo de aprendizado daqueles que se iniciam na linguagem.

Veremos neste artigo como exibir formatos de datas (dia, mês) em diversos idiomas.

Preparando o ambiente

Para os exemplos mostrados neste artigo eu estou usando o SQL Server 2012 Express Edition e o SQL Server Management Studio Express Edition.

Todas as instruções SQL serão executadas no SQL Server Management Studio. (SSMS)

Abaixo vemos o SQL Server Management Studio aberto.

1- Abra o SQL Server Management Studio
2- Clique em New Query
3- Digite a consulta na área de consulta
4- Clique no botão Execute

Recursos usados:

Para saber as línguas suportadas pelo SQL Server basta digitar a seguinte instrução na janela de consulta e executar:

select * from sys.syslanguages

Abaixo vemos o resultado:

Para exibir formatos de datas em diversas línguas primeiro defina a língua que deseja usar :

SET LANGUAGE nome_do_idioma

Onde nome_do_idioma é o nome do idioma como armazenado em sys.syslanguages.

Este argumento ou pode ser Unicode ou DBCS convertido em Unicode.

Depois use uma instrução para obter o formato da data desejada. As instruções mais usadas são:

Lembrando que :

Exemplo 1:

A seguir exibimos o nome do dia e do mês em diversos idiomas :

SET LANGUAGE English
SELECT DATENAME(DW, GETDATE()) AS 'Nome do dia em English'
SET LANGUAGE Polish
SELECT DATENAME(M, GETDATE()) AS 'Nome do mês em Polski'
SET LANGUAGE Spanish
SELECT DATENAME(M, GETDATE()) AS 'Nome do mês em Spanish'
SET LANGUAGE Italian
SELECT DATENAME(DW , GETDATE()) AS 'Nome do dia em Italian'
SET LANGUAGE ROMANIAN
SELECT DATENAME(M, GETDATE()) AS  'Nome do mês em Romanian'
SET LANGUAGE THAI
SELECT DATENAME (DW,GETDATE()) AS 'Nome do dia em THAI'
GO

Exemplo 2:

O exemplo a seguir define o idioma padrão como Italian, exibe o nome de mês e, então, volta para us_english e exibe o nome de mês novamente.

DECLARE @Today DATETIME;
SET
@Today = '5/18/2016'
;

SET LANGUAGE Italian;
SELECT
DATENAME(month, @Today) AS 'Nome do Mês'
;

SET LANGUAGE us_english;
SELECT
DATENAME(month, @Today) AS 'Nome do Mês'
;

GO

Para definir a data no formato dd/MM/yyyy

utilize a instrução SET  DATEFORMAT

Exemplo:

SET DATEFORMAT DMY

DECLARE
@Today DATETIME;

SET
@Today = '18/5/2016';

 

Exemplo 3:

Exibindo o mês e o dia da semana em Português de Portugal , do Brasil e em Italiano:

SET LANGUAGE 'Portuguese'
SELECT
DATENAME(MONTH, GETDATE()), DATENAME(WEEKDAY, GETDATE())

SET LANGUAGE 'Brazilian'
SELECT
DATENAME(MONTH, GETDATE()), DATENAME(WEEKDAY, GETDATE())

SET LANGUAGE 'Italian'
SELECT
DATENAME(MONTH, GETDATE()), DATENAME(WEEKDAY, GETDATE())

Deu para constatar que o SQL Server é um poliglota.

Até mais...

"Aquele que diz: Eu conheço-o (a Jesus), e não guarda os seus mandamentos, é mentiroso, e nele não está a verdade."
1 João 2:4

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Referências:


José Carlos Macoratti