Articles

banco de dados.Guia

Posted by admin

Transact-SQL inclui um monte de funções que nos ajudam a trabalhar com datas e horas. Uma das tarefas mais comuns ao trabalhar com datas é extrair as diferentes partes da data. Por exemplo, às vezes só queremos o ano, ou o mês. Outras vezes podemos querer o dia da semana. De qualquer forma, existem muitas maneiras de fazer isso no servidor SQL.

em particular, as seguintes funções permitem que você retorne o dia, mês e ano a partir de uma data no servidor SQL.,

  • DAY() MONTH() e YEAR()
  • DATEPART()
  • DATENAME()
  • FORMAT()

Estas funções são explicadas abaixo.

o dia(), mês () e ano() funções

a forma mais óbvia de retornar o dia, mês e ano a partir de uma data é usar as funções T-SQL do mesmo nome. Sim, T-SQL tem funções construídas especificamente para o propósito de retornar estes três conjuntos de dados.,

Aqui está um exemplo de como eles funcionam:

DECLARE @date datetime2 = '2018-06-02 08:24:14.3112042';SELECT DAY(@date) AS DAY, MONTH(@date) AS MONTH, YEAR(@date) AS YEAR;

Resultado:

+-------+---------+--------+| DAY | MONTH | YEAR ||-------+---------+--------|| 2 | 6 | 2018 |+-------+---------+--------+

Estas funções retornam o datepart como um número inteiro. Eles retornam o mesmo resultado que a função DATEPART() retorna para o datepart especificado.

a função DATEPART ()

a DATEPART() foi construída especificamente para devolver as partes especificadas de uma data., Portanto, pode-se usar esta função para retornar exatamente o mesmo resultado que o exemplo anterior:

Resultado:

+-------+-----------+---------+--------+| DAY | WEEKDAY | MONTH | YEAR ||-------+-----------+---------+--------|| 2 | 7 | 6 | 2018 |+-------+-----------+---------+--------+

Uma das vantagens de utilizar esta função é que você também pode voltar em outras partes da data e hora. Como você pode ver, com este exemplo, eu retornei a semana, dia a dia (day é o dia do mês, weekday é o dia da semana). Você também pode devolver as várias partes do tempo, tais como Minutos, Segundos, milisegundos, etc. Para mais exemplos, veja DATEPART() exemplos no servidor SQL.,

a função DATEPART() devolve o seu resultado como um inteiro, pelo que não poderá obter o nome do mês ou o nome do dia da semana a partir da data. Mas não se preocupe, você pode usar as funções DATENAME() ou FORMAT() para isso.

a função DATENAME ()

a função DATENAME() é semelhante à função , excepto que devolve o resultado como uma cadeia de caracteres em vez de um inteiro., DATENAME() também retorna mês e Dia da semana como seu nome completo, em vez de seu valor numérico.

Exemplo:

Resultado:

+-------+-----------+---------+--------+| DAY | WEEKDAY | MONTH | YEAR ||-------+-----------+---------+--------|| 2 | Saturday | June | 2018 |+-------+-----------+---------+--------+

Para mais exemplos desta função, consulte DATENAME() Exemplos no SQL Server.

the FORMAT () Function

We can use the FORMAT()function to return the same values as with the DATENAME(), and more.

Esta é uma função mais versátil do que as anteriores. Ele permite que você formate data / hora, bem como valores numéricos como strings., O valor de retorno é nvarcar ou nulo (dependendo da entrada), e o comprimento da cadeia é determinado pelo formato especificado.

FORMAT() também fornece mais opções para como o datepart é apresentado. Você pode especificar se deve mostrá-lo como um único personagem, dois caracteres, três, quatro, e até mesmo Cinco em alguns casos.

Aqui estão exemplos para demonstrar.,resultado:

+-----+------+-------+--------+| M | MM | MMM | MMMM ||-----+------+-------+--------|| 6 | 06 | Jun | June |+-----+------+-------+--------+

resultado:

tenha a opção de formatar a porção do ano como cinco dígitos.

sobre o número de dígitos

ao retornar um datepart em forma de dígito, o especificador de formato determina o número mínimo de dígitos a retornar., Por exemplo, ao usar yyy, o ano será devolvida como três dígitos se o ano é 0008 mas como quatro dígitos se o ano é 2008.

exemplo:

resultado:

+-----+------+-------+--------+---------+| y | yy | yyy | yyyy | yyyyy ||-----+------+-------+--------+---------|| 8 | 08 | 008 | 0008 | 00008 |+-----+------+-------+--------+---------+

também, ao usar a única opção (por exemplo,d) como especificador de data, terá de adicionar um espaço se só quiser que o datepart seja devolvido por si próprio. Se não fizeres isto, vais ter mais do que um único datepart.,

Exemplo:

Resultado:

+---------+------------+---------+------------+---------+------------+| Space | No Space | Space | No Space | Space | No Space ||---------+------------+---------+------------+---------+------------|| 2 | 6/2/2008 | 6 | June 2 | 8 | June 2008 |+---------+------------+---------+------------+---------+------------+

Para mais FORMAT() exemplos, consulte Como Formatar Data e Hora no SQL Server.

Leave A Comment