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

VISÃO GLOBAL - sobre IDoc O IDoc é um objeto SAP que transporta dados de uma transação comercial de um sistema para outro na forma de mensagem eletrônica.  IDoc é um acrônimo para  I  ntermediate  Doc  ument.  O objetivo de um IDoc é transferir dados ou informações do SAP para outros sistemas e vice-versa.  A transferência do SAP para o sistema não SAP é feita via subsistemas EDI (Electronic Data Interchange), enquanto para a transferência entre dois sistemas SAP, o ALE é usado. O IDoc pode ser acionado no sistema SAP ou no subsistema EDI. Isso depende da direção na qual o IDoc é enviado e é chamado como IDoc de entrada e IDoc de saída de acordo.  No caso de fluxo de saída, o IDoc é acionado no SAP por meio do controle de mensagens do documento, que é então enviado ao subsistema EDI. EDI converte os dados do IDoc em XML ou formato equivalente e, em seguida, envia os dados para o sistema parceiro através da Internet. Para o fluxo de entrad...

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...

Veja como solucionar o erro 'Não permite retransmissão' em iPhones, iPads e iPods

Você tentou enviar e-mails do seu UOL Mail por um iPhone, iPad ou iPod, mas recebeu a mensagem  O destinatário foi rejeitado pelo servidor porque ele não permite retransmissão ? Isso indica que existe algum erro na configuração do SMTP. Essa configuração junto com a configuração IMAP são os responsáveis por receber e enviar e-mails usando o gerenciador de contas dos aparelhos da Apple.  Clique aqui e verifique o passo a passo ilustrado para fazer essas configurações .  Se você já configurou seu aparelho, mas o erro persiste, é necessário verificar alguns dados.  Um erro comum, por exemplo, é esquecer de corrigir o campo  Nome do Host  que contém o link SMTP. É necessário colocar a letra "s" após o smtp, ficando:  smtps.uol.com.br . Vá em  Ajuste s, selecione  Mail, Contatos, Calendário . Selecione a conta do UOL que você configurou e clique em  Conta . Verifique se o Servidor de Correio de Saída está com o link  smtps.uol...