ich die folgende Zeile in SQL-Abfrage in MySQL RDBMSWie wenn absoluter Wert von zwei DATETIME- überprüfen Differenz Felder kleiner dann 30 Sekunden
abs(timediff(tableA.enrollment_date, tableB.enrollment_date)) < 30 AND
Dies bedeutet, dass der Unterschied zwischen den Zeiten sollte nicht mehr als 30 seconds
sein .
Documentation von MySQL sagt, dass
Das Ergebnis zurückgegeben durch TIMEDIFF(), um den Bereich für TIME Werte erlaubt begrenzt ist. Alternativ können Sie eine der Funktionen TIMESTAMPDIFF() und UNIX_TIMESTAMP() verwenden, die beide Ganzzahlen zurückgeben.
mysql> SELECT TIMEDIFF('2000:01:01 00:00:00',
-> '2000:01:01 00:00:00.000001');
-> '-00:00:00.000001'
mysql> SELECT TIMEDIFF('2008-12-31 23:59:59.000001',
-> '2008-12-30 01:01:01.000002');
-> '46:58:57.999999'
gemäß abs()
ich sehe, dass
Diese Funktion ist sicher mit BIGINT Werte zu verwenden.
Aber jetzt habe ich Zweifel an der Richtigkeit dieser.
Frage: Wie überprüft man, ob der absolute Wert von zwei DATETIME-Feldern kleiner als 30 Sekunden ist?