Ir para conteúdo

POWERED BY:

Arquivado

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

Allan Paul Raicher

Formar data corretamente

Recommended Posts

Amigos, boa tarde!

 

 

Primeiramente, gostaria de avisar que sou COMPLETAMENTE leigo. Mas preciso realmente da ajuda de vocês. Não estou conseguindo resultado de jeito nenhum.

 

Tenho uma página que envia avisos de não pagamento a clientes que abandonaram o processo antes de abrirem o PagSeguro para pagarem.

 

Acontece que quero que o sistema selecione todos os pedidos que foram feitos entre 2 e 1 horas atrás. Para que não envie para o cara que acabou de fazer o pedido e nem para o que já recebeu o aviso lá atrás. Ou seja, se o cara fez o pedido há mais de 2 horas, receberá este aviso.

 

Estou com o seguinte código:

 

Aviso.open "SELECT * FROM PedidosFinalizados WHERE (DataHora BETWEEN DATEADD(hh, - 2, GETDATE()) AND GETDATE() - 0) AND (estatus <> '') AND (Status = 0) AND (Produzir = 0) AND (FormaPagamento = 14)", Banco
Ele manda o aviso para os clientes que fizeram o pedido desde agora até 2 horas no passado. Preciso que ele não envie para os que fizeram o pedido entre 1 e 2 horas (precisa demorar um pouquinho para receber o aviso).
Não sei se consegui explicar direito. Por favor, me ajudem!

Compartilhar este post


Link para o post
Compartilhar em outros sites

ou pode usar agendamento no servidor tb. Mas use um DateDiff, se o resultado for < que 2 horas não envia

Compartilhar este post


Link para o post
Compartilhar em outros sites

USE Em uma condição, nao no SQL


Exemplo de DateDiff:

Response.Write("A partir de Agora : " & DateDiff("h", "10:00", "08:00") )

 

ele vai te retornar a quantidade de horas das 10 até as 8 que vai ser -2, ai voce coloca a hora final como Time() e a hora inicial a do banco

abaixo segue todos os tipos.

yyyy -> Ano
q -> Quarto
m -> Mês
y -> Dia do Ano
d -> Dia
w -> Dia da semana
ww -> Semana do ano
h -> Hora
n -> Minuto
s -> Segundo

Compartilhar este post


Link para o post
Compartilhar em outros sites

lembrando que vc pode usar o DateDiff direto na SQL, assim vc até ganha um pouco de desempenho

 

SELECT DATEDIFF(Hour, @StartDate, @EndDate) AS NewDate
-Valor retornado = 1464 horas

 

seria a mesma coisa da sua string SQL atua, a diferença que irá usar o DateDiff

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.