Jump to content
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.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

você também pode usar o Between do SQL

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.