Aprenda a usar as funções de Data do servidor SQL

as funções de data do servidor SQL fornecem-lhe um conjunto de funções que pode usar para manipular as datas. A função é usada para uma grande variedade de operações, tais como adicionar semanas a uma data, calcular a diferença entre duas datas, ou para decompor uma data em suas partes fundamentais.

Se não estiver familiarizado com as funções SQL, então eu recomendaria a introdução às funções incorporadas no servidor SQL.

para tirar o máximo partido disto e das nossas outras lições, não se esqueça de praticar usando os exemplos!,

Todos os exemplos para esta lição são baseados no Microsoft SQL Server Management Studio e na Base de dados AdventureWorks2012. Você pode começar a usar estas ferramentas gratuitas usando o meu guia começar a usar o servidor SQL.

Introdução às funções de Data do servidor SQL

Existem mais de vinte e cinco funções diferentes categorizadas como funções de data no servidor SQL.

Todas as funções estão listadas na página de funções de data (Transact-SQL). Eu recomendaria visitar essa página para aprender sobre cada função.,

em vez de reiterar esse material, vamos focar nas funções que eu vi em comumente usado nos negócios.

nas tabelas a seguir eu categorizei as funções e as cores codificadas. O código de cor corresponde ao capô provável que você usaria essa função em particular em um ambiente de negócios. O verde é mais provável de ser usado, e o vermelho menos.

Esta não é uma escala estrita, e todas as funções têm um uso em algum caso de negócio, mas eu queria uma maneira de ajudá-lo a descer o campo para aqueles mais relevantes.,

Aqui está a minha tentativa:

DateTime Functons – os Mais Comuns são de cor Verde

Funções usadas para obter a Data e Hora Actuais

todas as funções que são usadas para retornar a data e hora atuais, a função GETDATE é o mais comumente usado de função.

GETDATE

a função GETDATE é usada para devolver os dados e a hora atuais do servidor. Esta função torna-se útil quando você precisa comparar os dados, como a última data de pagamento para a data atual.,

A forma geral da função GETDATE é

GETDATE()

Aqui está um exemplo usando GETDATE

SELECT GETDATE()

Que retorna 2015-08-09 21:55:00.477

Um mais útil, por exemplo, é usar GETDATE com DATEDIFF ou DATEADD. Confira DATEDIFF para um exemplo mais abrangente.

funções para obter as partes da data

as partes da data referem-se a vários componentes de uma data, como o ano, mês ou dia. As partes de data são usadas em várias funções nesta seção e outras., Aqui está uma tabela de Partes de data que você pode usar em função como DATENAME, DATEPART, DATEDIFF e DATEADD.

Datepart Valores

Os nomes são bastante auto-explicativo. Cada parte da data corresponde a um período Bem conhecido, como o mês ou a hora.

DATENAME

DATENAME é uma função muito útil que é usada para devolver várias partes de uma data, como o nome do mês, ou o dia da semana correspondente a uma determinada data.,

A forma geral do nome de dados é

DATENAME(date part, value)

onde a parte da data corresponde a uma lista de partes predefinidas e o valor é a data com a qual está a trabalhar.

Esta função devolve um valor de carácter.

aqui está um exemplo que mostra várias partes de data em ação.

Supondo que GETDATE retorna 2015-08-10 12:56:25.313 o exemplo de resultados da consulta são

DATENAME Resultados

Nota: Existem muitos outros data peças que você pode usar com DATENAME., Você pode encontrar uma lista completa no site MSDN.

Aqui está um exemplo mostrando como você pode usar DATANAME para realizar alguma análise de nível de resumo das ordens.suponha que o Gerente de vendas gostaria de um resumo das vendas semanais. Usando a função DATENAME podemos fornecer essa informação.

Aqui estão os resultados

DATENAME – Aviso OrderWeek é classificada como um valor de caractere

eu quero destacar, que embora nós ordenados por ano e a semana e as semanas parecem estar fora de ordem., Isto é porque o OrderWeek retornado é um valor de caráter. Para ordenar então numericamente precisamos converter o resultado em um valor numérico.

poderíamos facilmente converter o valor dentro da ordem por cláusula, mas isso não é necessário uma vez que você saiba sobre DATEPART

DATEPART

retorna um inteiro que representa a parte especificada de uma data. Ele funciona muito semelhante ao nome de dados, na medida em que você especifica uma parte de data e valor, no entanto, em vez de retornar um valor de texto, como ‘Julho’, ele retorna 7.,

a forma geral do DATEPART é

DATEPART(date part, value)

onde a parte da data corresponde a uma lista de partes predefinidas e o valor é a data com a qual está a trabalhar.

Esta função devolve um número inteiro.

aqui está um exemplo que mostra várias partes de data em ação.

Supondo que GETDATE retorna 2015-08-10 12:56:25.313 o exemplo de resultados da consulta são

DATEPART Resultados

Nota: Existem muitos outros data peças que você pode usar com DATEPART., Você pode encontrar uma lista completa no site MSDN.

também podemos obter um resumo dos totais de vendas usando DATEPART como fizemos para DATENAME. Aqui é a consulta

repare que esses resultados são classificados corretamente de acordo com a semana:

DATEPART Resultados Classificados em Ordem Numérica

DIA, MÊS, ANO

O DIA, MÊS, e ANO devolução de funções, com base em uma data prevista, dia, mês, ou ano como um número inteiro.

A forma geral é a mesma para todas as três funções., Por brevidade vamos apenas mostrar dia, as outras duas funções funcionam de forma semelhante.

Aqui está a sua forma geral:

DAY(value)

onde o valor é a data com a qual você deve trabalhar.

Aqui está um exemplo rápido mostrando essas funções em jogar

SELECT HireDate, YEAR(HireDate) as HireYear, MONTH(HireDate) HireMonth, DAY(HireDate) as HireDayFROM HumanResources.Employee

Cujos resultados são:

DIA, MÊS, e resultados do ANO

Você pode ter notado que ANO(valor) é de curto mão DATEPART(ano, valor)., Ambos retornam o mesmo resultado, aqui está uma declaração SQL que você pode tentar:

SELECT HireDate, YEAR(HireDate) as HireYear, DATEPART(year, HireDate) as HireYearFromDatePartFROM HumanResources.Employee

você vai encontrar equivalências semelhantes para o mês e dia.

modificar e descobrir a diferença nas datas

DATEDIFF

a função DATEDIFF devolve o número de anos, meses, semanas ou dias entre duas datas.

A forma geral para o DATEDIFF é

DATEDIFF(date part, start value, end value)

onde a parte da data corresponde a uma lista de partes predefinidas da data, tais como Ano, Mês, semanas e dias.a diferença é calculada entre o valor inicial e o valor final.,

Esta função pode parecer um pouco complicada, mas realmente vale a pena entender, pois tem muitos usos práticos em SQL.

Você pode usá-lo para calcular o número de dias que um projeto de lei é devido, ou o número de dias ou semanas entre duas datas.

considere este exemplo:

O Vice-Presidente da RH quer premiar todos os funcionários com um prêmio de anos de serviço. Ela gostaria que você publicasse um relatório de todos os funcionários com mais de dez anos de serviço.,

para fazer isso, vamos usar o relatório DATEDIFF para mostrar o número de anos de serviço e também para filtrar aqueles com menos de dez anos de serviço.

Aqui está o SQL

SELECT NationalIDNumber, HireDate, DATEDIFF(year, HireDate, GETDATE()) YearsOfServiceFROM HumanResources.EmployeeWHERE DATEDIFF(year, HireDate, GETDATE()) >= 10ORDER BY YearsOfService DESC

Cujos resultados são

DATEDIFF Resultados

DATEADD

A função DATEADD é usado para adicionar anos, meses, semanas ou dias entre a data.,

A forma geral para o DATEADD é

DATEADD(parte da data, número, valor)

, Onde parte da data que corresponde a uma lista de datas predefinido peças, tais como ano, mês, semanas, dias e número especifica o número de partes data para adicionar valor.

Se o número for positivo, então esse número de partes da data é adicionado ao valor.se o número for negativo, a data efectiva em que as partes são subtraídas do valor.

Esta função pode parecer um pouco complicada, mas realmente vale a pena entender, pois tem muitos usos práticos em SQL.,

Você pode usá-lo para calcular o número de dias até que o bill esteja atrasado, ou o número de dias ou semanas no futuro ou no passado.

considere este exemplo:

o gerente de vendas tem falado com o gerente de produção sobre a venda de itens na web. Eles querem produzir as bicicletas como eles são ordenados. Se as bicicletas fossem encomendadas hoje, quando poderiam estar disponíveis para enviar para o cliente?se olhar para a tabela de produtos, verá que existe um campo de DaysToManufacture. Usando isso com DATEADD em conjunto com GETDATE () podemos calcular o número de dias no futuro.,

SELECT NAME, DaysToManufacture, GETDATE() as Today, DATEADD(day, DaysToManufacture, GETDATE()) EarliestDateFROM Production.ProductWHERE DaysToManufacture > 1

The results for this are

Use DATEADD to add DAYS to a DATE

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *