Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

TeixeiraRamos

DATEDIFF como trabalhar no ASP

Recommended Posts

Prezados,

Tenho uma página em ASP e no meu SELECT tem dois campos:

data_qso

e o outro

dataagora

Esses dois campos abrem na tabela normalmente, sem problema.

Acontece que gostaria calcular a diferença entre essas duas datas usando a função:

DATEDIFF (data_final, data_inicial)

Tentei isso:

<td><%=DateDiff(rs("data_qso","dataagora"))%></td>

A página não abre e aparece a mensagem de erro:

Erro de tempo de execução do Microsoft VBScript erro '800a01c2'

Número de argumentos incorreto ou atribuição de propriedade inválida: 'rs'

/meu novo site nova versao/pesquisa.asp, linha 155

Tentei isso:

<td><%=DateDiff(rs("data_qso"),(rs("dataagora")))%></td>

Recebo a mesma mensagem de erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para calcular uma diferença entre datas, você precisa especificar um parâmetro de intervalo, como dias, meses, anos, etc. Basicamente seria ago como este exemplo:

<%
hoje = date()
natal = "25/12/2016"
intervalo = DateDiff("d", hoje, natal)
Response.Write("Faltam "& intervalo &" dias para o Natal de 2016")
%>

Neste exemplo, foi utilizado o parâmetro de intervalo "d" que se refere a "day" (dias).

Mais sobre estes parâmetros e a função em si, podem ser obtidos [aqui].

Detalhe, trabalhar com datas requer alguns cuidados como, armazenar de forma correta no banco de dados, definir nas páginas o CodePage e Session.LCID de acordo com a região, entre outros.

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não poderia deixar, também, de informar um experiência marcante a respeito da DATEDIFF.

Para melhor compreensão:

  1. Tenho dois campos que vou chamar data_variada e data_agora;
  2. Como o próprio nome do campo sugere "data_variada" é uma data que variar e o campo data_agora CRIEI é a data real do computador;
  3. Como criei a data_agora? No SELECT digitei o seguinte: SELECT NOW() AS data_agora;
  4. Com isso foi possível povoar a tabela com a data_agora (data exata do computador) possibilitando o próprio SQL gerar uma coluna com a "quantidade_dias", ou seja, DATEDIFF(data_agora, data_variada);
  5. Com isso fico sabendo, a quantidade de dias, entre as duas datas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você também pode usar o Between do SQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.