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

3 maneiras de obter o nome do dia de uma data no SQL Server (T-SQL)


No SQL Server, assim como você pode usar o T-SQL para obter o nome do mês de uma data, também pode usar os mesmos métodos para obter o nome do dia. Por nome do dia, quero dizer segunda-feira ou terça-feira por exemplo, e não o número da data ou o número do dia da semana (que você também pode obter se precisar).

Aqui estão três maneiras de retornar o nome do dia de uma data no SQL Server usando T-SQL.


A função FORMAT()


O FORMAT() A função retorna um valor formatado no formato especificado e cultura opcional. Você pode usá-lo para retornar o nome do dia de uma data.

Aqui está um exemplo:
DECLARE @date datetime2 = '2018-07-01';
SELECT FORMAT(@date, 'dddd') AS Result;

Resultado:
+----------+
| Result   |
|----------|
| Sunday   |
+----------+

Neste caso, fornecemos um formato de dddd que é para o nome do dia.

Você também pode obter o nome curto do dia fornecendo ddd como segundo argumento:
DECLARE @date datetime2 = '2018-07-01';
SELECT FORMAT(@date, 'ddd') AS Result;

Resultado:
+----------+
| Result   |
|----------|
| Sun      |
+----------+

Você também pode fornecer um argumento opcional para especificar a cultura.

aqui estão alguns exemplos:
DECLARE @date datetime2 = '2018-07-01';
SELECT 
    FORMAT(@date, 'dddd', 'en-US') AS 'en-US',
    FORMAT(@date, 'dddd', 'es-es') AS 'es-es',
    FORMAT(@date, 'dddd', 'de-de') AS 'de-de',
    FORMAT(@date, 'dddd', 'zh-cn') AS 'zh-cn';

Resultado:
+---------+---------+---------+---------+
| en-US   | es-es   | de-de   | zh-cn   |
|---------+---------+---------+---------|
| Sunday  | domingo | Sonntag | 星期日  |
+---------+---------+---------+---------+

A função DATENAME()


O DATENAME() função é semelhante à DATEPART() função, exceto que ela retorna o nome da parte da data especificada (mas apenas quando um nome for aplicável). Isso significa que ele retorna o nome do dia da semana ou o nome do mês, se for o que você precisa.

Veja como retornar o componente de dia da semana da data:
DECLARE @date datetime2 = '2018-07-01';
SELECT DATENAME(weekday, @date) AS Result;

Resultado:
+----------+
| Result   |
|----------|
| Sunday   |
+----------+

A função escalar ODBC DAYNAME()


Se por algum motivo você precisar usar uma função escalar ODBC, existe uma chamada DAYNAME() que retorna especificamente o nome do dia da semana de uma data.

Exemplo:
DECLARE @date datetime2 = '2018-07-01';
SELECT {fn DAYNAME(@date)} AS Result;

Resultado:
+----------+
| Result   |
|----------|
| Sunday   |
+----------+

Ao usar funções escalares ODBC em T-SQL, elas são cercadas por chaves ({} ) e o nome da função é prefixado com fn .