このMySql式は、秒がゼロになっているDATETIME値を返します。
CONVERT(DATE_FORMAT(table.column,'%Y-%m-%d-%H:%i:00'),DATETIME)
これを見てください。 https:// dev .mysql.com / doc / refman / 8.0 / en / date-and-time-functions.html#function_date-format 。したがって、次のようなクエリが発生する可能性があります。
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...
ただし、注意してください。自動生成されたタイムスタンプは、浮動小数点数のようなものです。それらの2つが互いに等しくなるとき、それはただの幸運です。タイムスタンプを分単位で切り捨てても問題ない場合がありますが、あるタイムスタンプを別のタイムスタンプから減算して、差(または差の絶対値)を比較する方がよい場合もあります。
また、この結合は、すべての値に対して2番目の切り捨て関数を実行する必要があるため、遅くなり、インデックスを使用できなくなります。
TIMESTAMPDIFF()
。ただし、注意してください。この関数は、互いに数日以内のタイムスタンプの秒レベルでのみ正しく機能します。それは優雅に溢れます(私が非常に苦痛で発見したように)。
タイムスタンプを挿入するときに、タイムスタンプを分に切り捨ててみることができます。これにより、インデックスを作成できます。