Essa expressão MySql retornará valores DATETIME com os segundos zerados.
CONVERT(DATE_FORMAT(table.column,'%Y-%m-%d-%H:%i:00'),DATETIME)
Dê uma olhada neste. https://dev .mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format . Então você pode acabar com uma consulta como esta:
SELECT Table1.TimeSTamp1, Table1.Param1, Table2.TimeStamp2, Table2.Param2
FROM Table1
JOIN Table2 ON CONVERT(DATE_FORMAT(Table1.TimeStamp1,'%Y-%m-%d-%H:%i:00'),DATETIME)
= CONVERT(DATE_FORMAT(Table2.TimeStamp2,'%Y-%m-%d-%H:%i:00'),DATETIME)
WHERE ... conditions for the other parameters of Table1 and Table2...
Mas tenha cuidado. Os carimbos de data e hora gerados automaticamente são como números de ponto flutuante; quando dois deles aparecem iguais um ao outro é apenas sorte. Truncar seus timestamps para o minuto pode ser bom, mas também pode ser melhor subtrair um timestamp de outro e comparar as diferenças (ou os valores absolutos das diferenças).
Além disso, essa junção será lenta porque precisa executar a função de segundo truncamento em cada valor, portanto, não pode usar nenhum índice.
Você pode subtrair um timestamp de outro com
TIMESTAMPDIFF()
. Mas tenha cuidado. Esta função só funciona corretamente no nível de segundos para timestamps com poucos dias de intervalo; transborda sem graça (como descobri com grande dor). Você pode tentar truncar os carimbos de data/hora para minutos no momento em que os insere. Isso permitiria que você os indexasse.