Zeilen ermitteln, deren Zeitstempel größer ist als die aktuelle Zeit (SQL)?

MrAmazing2  15.04.2022, 22:02
mit einem Feld "available_from"

Welchen Typ hat das Feld?

Niklas 
Fragesteller
 15.04.2022, 22:08

Datetime (YYYY-MM-DD HH:II:SS)

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Du musst das aktuelle Datum ja nicht unbedingt in SQL ermitteln. Das kann auch PHP, z.B. mit Carbon. Anschließend könntest du whereDate (vielleicht reicht aber auch where) verwenden, um den Wert der Spalte damit zu vergleichen.

Versuch mal das hier:

whereDate('articles.available_from', '<', Carbon::now())
Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf

Das geht durchaus so.

Was ist genau das Problem?

Niklas 
Fragesteller
 15.04.2022, 21:35

Ich arbeite mit dem PHP-Framework Laravel und habe das Problem der Verständlichkeit halber auf pures SQL heruntergebrochen. Leider sehe ich jetzt Artikel, deren Wert available_from größer als der aktuelle Zeitstempel ist. Irgendwas stimmt da noch nicht.

DB::raw('CURRENT_TIMESTAMP()'), '>', 'articles.available_from'

(Die raw-Methode ermöglicht das direkte Ausführen von SQL ohne, dass es vom Laravel Query Parser geparsed wird.)

0
Niklas 
Fragesteller
 15.04.2022, 22:14
@MrAmazing2

Wenn ichs direkt über den Datenbankserver ausführe, funktionieren alle diese Optionen einwandfrei. Nur wenn ich es über den Query-Builder von Laravel probiere, ist der Test-Eintrag sichtbar, obwohl er erst ab morgen 10:00 Uhr buchbar sein soll.

Muss dann wohl ein Laravel-Problem sein.

1