MySQL - wie Sie select id, wo min/max-Termine Unterschied ist mehr als 3 Jahre
Ich habe eine Tabelle wie diese:
| id | date | user_id |
----------------------------------------------------
| 1 | 2008-01-01 | 10 |
| 2 | 2009-03-20 | 15 |
| 3 | 2008-06-11 | 10 |
| 4 | 2009-01-21 | 15 |
| 5 | 2010-01-01 | 10 |
| 6 | 2011-06-01 | 10 |
| 7 | 2012-01-01 | 10 |
| 8 | 2008-05-01 | 15 |
Ich bin auf der Suche nach einer Lösung, wie Sie select user_id, wo der Unterschied zwischen MIN-und MAX-Daten ist mehr als 3 Jahre. Für die oben genannten Daten, die ich bekommen sollte:
| user_id |
-----------------------
| 10 |
Wer kann helfen?
- +1 für eine gut formulierte Frage von einem neuen user 🙂 herzlich Willkommen auf stackoverflow.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier getestet: http://sqlize.com/MC0618Yg58
ABS(DATEDIFF(MIN(),MAX())>=365
obwohl-aber beide sind gültig. -- Obwohl, wenn Sie die ListeMAX
ersten, Sie sind nicht immer garantiert ein positiver Wert ist, und keine Notwendigkeit für eineABS
nennen?Ähnlich wie bernie ' s Ansatz, ich würde halten Sie Datum-Formate nativ. Ich würde wahrscheinlich auch Liste der MAX first, um zu vermeiden, eine
ABS
nennen (secure eine positive Zahl ist immer gerade).DATEDIFF
nur die Renditen delta (in Tagen) zwischen zwei Datum-Felder.1095
, und ich bin mir noch nicht sicher, was zu tun ist über der leap-Jahre.where
statthaving
DATEDIFF
haben ein erstes argument erlaubt eine Metrik?DATEDIFF
liefert Tage nicht Jahre auseinander, so können Sie auch wollen, zu aktualisieren, zu überprüfen, 365. 😉