MySQL und INTERVAL 90 DAY

oliverb

Mitglied
MySQL-Version: 5.5.44
PHP-Version: 5.6.15

SELECT datetime, preis, artikelnummer FROM database
WHERE datetime >= (date(NOW()) - INTERVAL 90 DAY) AND artikelnummer=63636GG
ORDER BY datetime DESC

2016-01-05 00:00:00 | 23.55 | 63636GG
2016-01-02 00:00:00 | 24.99 | 63636GG
2016-01-01 00:00:00 | 20.15 | 63636GG

Hallo zusammen,

ich möchste mit der obigen Abfrage alle Einträge ausgeben lassen, die in den letzten 90 Tagen generiert wurden, um eine Grafische Auswertung der Preisentwicklung zu erzeugen. In der X-Achse der Auswertung benötige ich JEDES Datum der letzten 90 Tage!

Problem:
Zu jedem Datum gibt es nur einen Wert. Aber nicht zu jedem Datum wurden Daten in der Datenbank gespeichert, da es sich um eine Artikeldatenbank und den entsprechenden Preis des Artikels an diesem Datum handelt. Wenn ein Artikel an einem bestimmten Tag nicht verfügbar war (kein Artikelbestand) wurde auch keinen entsprechenden Eintrag generiert!

Weis jemand eine Idee mit der mir MySQL trotzdem alle Datumswerte der letzten Tage ausgibt? Wenn kein entsprechender Wert zum Datum vorhanden ist soll zwar das Datum aber NULL oder 0 als Wert ausgegeben werden. Klar kann man das in PHP lösen. Würde das aber gerne MySQL direkt so ausgeben lassen, sofern dies überhaupt möglich ist.

Danke für Eure Hilfe bzw. Anregungen!
 
Lustigerweise gibt mein SQL-Server ab 2034 kein entsprechendes Datum aus. Es funktioniert nur bis einschließlich 2033.

Muss mir schon mal ein Termin einstellen um das dann zu fixen bzw. bis dahin in Rente gehen... :cool:
 
Das ist dann, weil sie 32bit-ints für die Sekundentimestamps (seit 1970) verwenden.
Noch immer, obwohl die Problematik eigentlich Allgemeinwissen ist.

Mit anderen Worten, Microsofts SqlServer ist einfach sehr schlecht programmiert.
 
Ok, dann ist Mysql schlecht programmiert :)
(kann ich in dem Fall auch aus eigener Erfahrung bestätigen)

Hab nur SQL-Server gelesen und deswegen an MS denken müssen
 
Zurück