SQLite - Where Datum >= NOW?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
SELECT thema, titel, alttextcard, imgcard FROM '{$thema}' WHERE datumveröffentlichung < DATE('now')

Das sollte funktionieren. Sofern die Spalte Datetime ist natürlich. "DATE" gibt das heutige Datum.

Anmerkungen:

  1. Natürlich kannst du das Datum auch PHP Seitig festlegen und dem SQL so mitgeben. Meines Erachtens nach ist es aber oft besser Dinge die der SQL Server machen kann, ihn auch machen zu lassen.
  2. Umlaute im Spaltennamen sind zwar möglich, sollte man aber vermeiden.
  3. Packe PHP Variablen in einem String am besten in geschweifte Klammern, ist nicht immer notwendig, vermeidet aber Fehler wenn man es sich angewöhnt hat.
Woher ich das weiß:Berufserfahrung – Entwickler seit 2016 (Drupal, PHP, JS)
crRaphi 
Fragesteller
 30.08.2022, 20:21

Danke funktioniert auf den ersten Blick, konnte es aber noch nicht live testen.

Eines noch, wenn ich die Daten aber auch nach der angehängten Zeit freigeben möchte, also:

Freigabe -> 2022-09-01 10:00:00

Also dass er auch die Zeit berücksichtigt, falls das geht?

0
Gho5txx  30.08.2022, 23:04
@crRaphi

Natürlich. Dann statt DATE() einfach DATETIME() verwenden :)

0
crRaphi 
Fragesteller
 31.08.2022, 16:06
@Gho5txx

Danke für deine Antwort funktioniert wunderbar.

Hatte kurz vergessen, dass bei datetime die Angaben in UTC eingegeben werden müssen.

0
SELECT thema,titel,alttextcard,imgcard  FROM '$thema' WHERE datumveröffentlichung < convert(date, GetDate())

Du nimmst die aktuelle Uhrzeit+Datum, entfernst durch das Convert die Uhrzeit und bekommst als Ergebnis das aktuelle Datum. Dadurch funktioniert es auch wenn eine Uhrzeit in der Spalte angegeben ist und nicht 00:00:0000 im Feld steht.

Gho5txx  30.08.2022, 17:32

Ich mag falsch liegen, aber "GetDate()" ist eine MSSQL-Server Funktion, nicht verfügbar in z.B MySQL oder dem Fragesteller genanntem SQLite

0
TheFamousSpy  30.08.2022, 18:31
@Gho5txx

Da hast du recht. Ich bin davon ausgegangen das es die überall gibt.

0
crRaphi 
Fragesteller
 30.08.2022, 19:57

Danke für deine Antwort, doch leider funktioniert sie nicht.

Fehlermeldung:

Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 1 no such column: date in C:\Users\***\OneDrive\Desktop\DWL (resp + DB)\database\conecttodb.php:20 Stack trace: #0 C:\Users\***\OneDrive\Desktop\DWL (resp + DB)\database\conecttodb.php(20): PDO->prepare('SELECT thema,ti...') #1 C:\Users\***\OneDrive\Desktop\DWL (resp + DB)\pages\msoffice\excel\lektionenuebersicht.php(5): include_once('C:\\Users\\***\\...') #2 {main} thrown in C:\Users\***\OneDrive\Desktop\DWL (resp + DB)\database\conecttodb.php on line 20

0
TheFamousSpy  30.08.2022, 21:37
@crRaphi

Weil (wie von Gho5txx erwähnt) ist meine Lösung für SQL Server, nicht für Sqlite. Beachte die Antwort von Gho5txx, das passt für Sqlite

1