Basierend auf dem Format Ihrer Daten in der Tabelle müssen Sie sie mit STR_TO_DATE
konvertieren um sie in einer Abfrage zu verwenden. Wenn Ihre Spalte ist eigentlich ein datetime
eingeben, und das ist nur Ihr Anzeigecode, der dieses Format ausgibt, ersetzen Sie einfach STR_TO_DATE(xxx, '%m/%d/%Y %k:%i')
in dieser Abfrage mit xxx
.
Um Bestellungen innerhalb von 10 Minuten zu finden, müssen Sie sich selbst unter user_id
an Ihrem Tisch anmelden , order_id
und die Zeit der zweiten Bestellung innerhalb der Zeit der ersten Bestellung und 10 Minuten später liegt:
SELECT t1.user_id, t1.create_time AS order1_time, t2.create_time AS order2_time
FROM transactions t1
JOIN transactions t2 ON t2.user_id = t1.user_id
AND t2.order_id != t1.order_id
AND STR_TO_DATE(t2.create_time, '%m/%d/%Y %k:%i') BETWEEN
STR_TO_DATE(t1.create_time, '%m/%d/%Y %k:%i')
AND STR_TO_DATE(t1.create_time, '%m/%d/%Y %k:%i') + INTERVAL 10 MINUTE
Ausgabe:
user_id order1_time order2_time
101 4/2/2018 8:34 4/2/2018 8:37
103 4/2/2018 9:32 4/2/2018 9:36
106 4/2/2018 13:11 4/2/2018 13:18