TransWikia.com

where para deletar registros que foram inseridos há um determinado tempo

Stack Overflow em Português Asked by Everton on December 30, 2021

Queia ajuda para criar um delete com where caso o registro tenha sido inserido a mais de 5 minutos.

Tenho a tabela de marcação de ponto com as colunas:

  • cd_cadastro – inteiro
  • cd_empresa – inteiro
  • cd_matricula – inteiro
  • dt_ponto – varchar (porque estou enviando da aplicação Java como String a data)

A ideia é:

delete from ponto where "registro foi inserido há mais de cinco minutos"

ou

delete from ponto where hora_atual - dt_ponto > cincoMinutos

Ou se há outra alternativa para esta solução.

Preciso disso pois é uma regra da empresa que uma pessoa só possa inserir registro de ponto a cada 5 minutos. Então, essa é uma tabela que serve como referência do tempo de marcação de ponto. Na aplicação java, eu faço uma verificação, se houver registro de matricula nessa tabela é porque o usuário registrou ponto a menos de cinco minutos e não pode inserir outro registro.

One Answer

Use a função DATE_SUB() para calcular a diferença de 5 minutos data, assim:

WHERE dt_ponto <= DATE_SUB(NOW(), INTERVAL 5 MINUTE);

O INTERVAL pode ser HOUR, MINUTE, etc, e como é DATE_SUB, vai subtrair 5 minutos, se fosse DATE_ADD, somaria.

Veja aqui um exemplo funcionando: https://www.db-fiddle.com/f/mrJ1axymtQmoHLhKJb2bXc/0

Answered by Ricardo Pontual on December 30, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP