SQLite Abfrage nach Wochentag
-
Frank84 -
11. November 2021 um 15:06 -
Erledigt
-
-
SQLite Abfrage nach Wochentag? Schau mal ob du hier fündig wirst!
-
Spalte timestamp
Wirklich, das ist ein String
20211101 4 15:05:00
Also eine Kombination von https://www.sqlite.org/lang_corefunc.html#substr und ORDER BY ... DESC LIMIT 7 wird es dann sein.
Edit: Hint - Zuerst LIMIT und dann suchen, 2 Queries
Zeig uns mal Dein Tabellen-Create Statement
-
20211101 4 15:05:00
Sind das drei Spalten? Oder ist das eine Spalte? Wie heißen diese Spalten? Wie heißt die Tabelle?
wobei anstelle der $spalte1, $spalte2, $spalte3 und $tabellenname die entsprechenden Namen stehen sollten.
Hier bekommst du die drei Werte aus jeder Zeile, in der die zweite Spalte den Wert 4 hat. mit einem "ORDER BY ..", siehe oben, auch die letzten 7 Werte aus dieser Tabelle.
-
Reicht da nicht like mit "% 4 %" aus?
Das ist übrigens kein Timestamp.
-
-
Ich habe einen zusammengesetzten String genommen, der Wochentag ist eingefügt. Sollte ich eine eigene Spalte für den Wochentag wählen ?
Bin gerade in der Planungsphase für eine DB...
Habe gedacht das würde irgendwie mit %w in einer Abfrage fuktionieren.
-
Hallo,
nee, du musst einfach einen Timestamp nehmen, den SQLite auch als solchen erkennt, dann geht auch die Abfrage mit %w. Siehe https://www.sqlite.org/lang_datefunc.html
Wie greifst du den auf die DB zu? Je nach Programmiersprache, die du nutzt, macht ggf. ein ORM oder so was in der Art als Zwischenschicht Sinn, dann wird das komfortabler.
Gruß, noisefloor
-
Leider sehe ich dort keinen TimeStamp der von SQL erkannt werden soll
-
Hallo,
Sektion 2 "Time Values". Du musst halt ein bisschen auf der Seite nach unten scrollen...
Gruß, noisefloor
-
Da ist aber kein Wochentag integriert, led. Datum und Zeit ?
-
Hallo,
du hast einen Denkfehler - das rechnet ja die passende Funktion der DB für dich. Der Tag muss eben _nicht_ (!) explizit drin stehen. Wäre auch eine redundante Info, weil der Tag ja nun mal eindeutig aus dem Datum abzuleiten ist.
Beispiel:
Code
Alles anzeigensqlite> CREATE TABLE demo (timestamp text); sqlite> INSERT INTO demo VALUES ('2021-11-12 16:00'); sqlite> INSERT INTO demo VALUES ('2021-11-05T10:00'); sqlite> INSERT INTO demo VALUES ('2021-11-04 11:11:11'); sqlite> SELECT * FROM demo; 2021-11-12 16:00 2021-11-05T10:00 2021-11-04 11:11:11 sqlite> SELECT * FROM demo WHERE strftime('%w', timestamp) = '5'; 2021-11-12 16:00 2021-11-05T10:00 sqlite>
Gruß, noisefloor
-
Beitrag von SmallSunset65327 (
14. November 2021 um 12:27 )Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar. -
noisefloor; danke, jetzt hab ich's kapiert
Jetzt mitmachen!
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!