Veröffentlicht 12. April 20187 j Hallo, kann mir jemand helfen, ich stehe auf dem Schlauch. Die Aufgabe lautet: Welche Mitarbeiter arbeiten noch keine 12 Jahre in unserem Unternehmen? Ist es nun SELECT MNr, Name, Vorname, eingestellt, CURDATE() AS heute FROM Mitarbeiter WHERE CURDATE()-12 > eingestellt; oder SELECT MNr, Name, Vorname, eingestellt, CURDATE() AS heute FROM Mitarbeiter WHERE CURDATE()-12 < eingestellt; Mache den ganzen Tag schon SQL, vielleicht raucht mein Kopf einfach zu sehr um das gerade zu verstehen
12. April 20187 j Weder noch. Hast du mal geprüft was CURDATE()-12 überhaupt ergibt? Stichworte zur Lösung: DATEDIFF(), DATE_ADD() und hier ganz speziell DATE_SUB()
12. April 20187 j Funktioniert das überhaupt? CURDATE() liefert doch 2018-04-12 bzw 20180412 zurück. Du mußt die Timestamps erst mal so formatieren, daß du nur das Jahr hast. Außerdem hast du oben CURDATE() as heute aufgerufen, aber unten nicht mehr benutzt. Nur so als Hinweis Bearbeitet 12. April 20187 j von Colamann
12. April 20187 j Autor vor 6 Minuten schrieb _n4p_: Weder noch. Hast du mal geprüft was CURDATE()-12 überhaupt ergibt? Stichworte zur Lösung: DATEDIFF(), DATE_ADD() und hier ganz speziell DATE_SUB() Wir sollen es ohne DATE_SUB lösen. Vielleicht so? SELECT Name, Vorname, eingestellt, CURDATE() as Heute FROM Mitarbeiter WHERE DATE_ADD(eingestellt, INTERVAL 12 YEAR) > CURDATE() ORDER BY eingestellt; Bearbeitet 12. April 20187 j von fisiazubi01
12. April 20187 j Lösung Es geht auch ohne DATE_SUB: SELECT CURDATE() - INTERVAL 12 YEAR oder SELECT DATE_ADD(CURDATE(), INTERVAL -12 YEAR ) Bearbeitet 12. April 20187 j von _n4p_
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.