Frage

ich habe gefunden DoctrineExtensions Modul, das einige nützliche MySQL-Funktionen implementiert hat.Aber ich denke, mein Problem ist ein allgemeines.Wie würden Sie einen anderen MySQL-Ausdruck als Parameter an eine Funktion übergeben?

Wenn ich 2 Spalten hätte updated_at die ein DATETIME Und lifespan Das ist ein INT und ich wollte abfragen, ob die Lebensdauer einer Entität abgelaufen ist, ich könnte dies tun;

WHERE 0 > TIMESTAMPDIFF(SECONDS, NOW(), e.updated_at + INTERVAL e.lifespan SECOND)

Im QueryBuilder ist es ungefähr so.

$qb->andWhere('0 > TIMESTAMPDIFF(SECONDS, CURRENT_TIMESTAMP(), e.updated_at + INTERVAL e.lifespan SECOND)');

Aber der Parser mag es nicht + INTERVAL e.lifespan SECOND weil es die schließende Klammer anstelle eines Pluszeichens erwartet.

War es hilfreich?

Lösung

Mir wurde klar, dass ich die DateAdd-Klasse aus dem verwenden kann DoctrineExtensions Modul.

TIMESTAMPDIFF(SECOND, CURRENT_TIMESTAMP(), DATEADD(e.updated_at, INTERVAL e.lifespan SECOND))

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top