Ekspresi MySql ini akan memberi Anda kembali nilai DATETIME dengan detik nol.
CONVERT(DATE_FORMAT(table.column,'%Y-%m-%d-%H:%i:00'),DATETIME)
Lihatlah ini. https://dev .mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format . Jadi, Anda mungkin akan mendapatkan kueri seperti ini:
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...
Tetapi berhati-hatilah. Stempel waktu yang dibuat secara otomatis seperti angka floating point; ketika dua dari mereka muncul sama satu sama lain itu hanya keberuntungan. Memotong stempel waktu Anda ke menit mungkin baik-baik saja, tetapi Anda mungkin juga lebih baik mengurangi satu stempel waktu dari yang lain, dan membandingkan perbedaannya (atau nilai absolut dari perbedaannya).
Juga, penggabungan ini akan menjadi lambat karena harus menjalankan fungsi pemotongan kedua pada setiap nilai, sehingga tidak dapat menggunakan indeks apa pun.
Anda dapat mengurangi satu stempel waktu dari stempel waktu lainnya dengan TIMESTAMPDIFF()
. Tetapi berhati-hatilah. Fungsi ini hanya berfungsi dengan benar pada tingkat detik untuk cap waktu dalam beberapa hari satu sama lain; itu meluap dengan anggun (seperti yang saya temukan dengan rasa sakit yang luar biasa).
Anda dapat mencoba memotong stempel waktu menjadi menit pada saat Anda memasukkannya. Itu akan memungkinkan Anda mengindeksnya.