Pular para o conteúdo principal

3 - Encontrando a diferença entre duas datas


Para calcular a diferença entre duas datas utilize a função DATEDIFF.
 

Sintaxe : DATEDIFF ( datepart , startdate , enddate )

A função retorna a contagem (inteiro com sinal) dos limites especificados de datepart cruzados entre os parâmetros especificados startdate e enddate.

Neste exemplo eu estou usando o banco de dados Northwind.mdf e calculando a diferença entre a data de hoje e data armazenada no campo ShippedDate da tabela Orders em dias.



Sintaxe:
DATEDIFF ( datepart , startdate , enddate )
A função DATEDIFF aceita três parâmetros:
  1. datepart - usado para identificar se você esta contando a diferença em termos de dias, horas, meses, etc;
  2. A data inicio;
  3. A data fim;
Note que a função retorna o número de limites datepart cruzados o que não é a mesma coisa que o tempo decorrido entre as duas datas.
A seguir temos dois exemplos de consultas onde cada coluna retorna a quantidade de um limite datepart cruzado para cada datepart especificado, embora a diferença entre as duas datas seja de 100 nano segundos (0,000001 segundos).


SELECT DATEDIFF(year, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(quarter, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(month, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(dayofyear, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(day, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(week, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(hour, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(minute, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(second, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');

SELECT DATEDIFF(millisecond, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');


- Cada datepart e suas abreviações retornam o mesmo valor.
- Se o valor de retorno estiver fora do intervalo de int (-2,147,483,648 a +2,147,483,647), um erro será retornado.
- Para millisecond, a diferença máxima entre startdate e enddate é de 24 dias, 20 horas, 31 minutos e 23.647 segundos.
- Para second, a diferença máximo é de 68 anos.
- Se a startdate e enddate forem atribuídos apenas um valor de hora e o datepart não for um datepart de hora, será retornado 0.
- Se apenas um valor de hora for atribuído a uma variável de tipo de dados 'data', o valor da parte 'data' faltante será definido como o padrão: 1900-01-01



Comentários

Postagens mais visitadas deste blog

Saída de mercadorias (MIGO_GI)

Saída Logística - Administração de Materiais - Administração de Estoques - Movimento mercadoria (MIGO) - Saída de mercadorias (MIGO_GI) - Saída de mercadorias (MB1A) Uma saída de mercadoria (SM) é a retirada de material do estoque, seja para consumo ou expedição para um cliente. Tipo de movimento - 201 – Consumo de mercadoria para centro de custos vindo do depósito - 221 – Consumo de mercadoria para projeto vindo do depósito - 261 – Consumo para ordem vindo do depósito - 281 – Consumo para diagrama de rede vindo do depósito - 541 – Subcontratação: remessa dos componentes de livre utilizável para fornecedor - 551 – Retirada para sucata de livre utilizável As opções da transação MIGO_GI são: Saída e Estorno. Campos a serem preenchidos para Saída de Mercadoria: - Selecionar “Saída de mercadorias” - Entrar com os dados dos itens a serem retirados do depósito: o Material o Quantidade o Centro o Depósito o Centro de Custo (obrigatório dependendo do tipo de saída) Campos...

sap_basis (Monitoramento do SAP Basis)

sap_basis (Monitoramento do SAP Basis) O probe sap_basis (SAP Basis Monitoring - Monitoramento do SAP Basis) monitora a integridade e o desempenho do cenário SAP. Este probe ajuda as empresas a monitorarem seus aplicativos SAP críticos à missão. O probe sap_basis pode monitorar as instâncias do SAP, as instâncias de banco de dados e sistemas de arquivos, que são os principais componentes de uma implantação do SAP Basis. Consulte Métricas do sap_basis para compreender os recursos de monitoramento do probe. O probe permite que os administradores do Basis tenham uma visão holística do ambiente SAP Basis e os ajuda a detectar problemas antes que eles afetem os usuários finais. Com esse probe, a equipe do Basis pode monitorar o desempenho de seus aplicativos em um único console, ver os alertas assim que as ocorrências surgem, diagnosticar e solucionar os problemas, acompanhar as tendências e planejar usando os gráficos no USM (Unified...

Execução de Jobs em segundo plano no SAP

As tarefas em segundo plano no sistema SAP são executadas em segundo plano sem afetar as operações normais no sistema.  Esses trabalhos são usados ​​para reduzir o esforço manual e automatizar o processo.  Eles podem ser executados em segundo plano sem qualquer entrada do usuário e podem ser programadas para serem executadas quando o carregamento do sistema estiver baixo. Jobs em segundo plano podem ser divididos em três categorias - Classe A (alta prioridade) Isso é usado para tarefas urgentes ou críticas e deve ser agendado como Jobs prioritário de classe A.  O Job de Classe A reserva um ou mais processos de trabalho em segundo plano. Classe B (Prioridade Média) Esses Jobs são executados após a conclusão de trabalhos de alta prioridade da Classe A. Classe C (baixa prioridade) Os Jobs nessa categoria são executados depois que as tarefas de classe A e de classe B são concluídas.