Sorry, für den schlechten Header, doch ich weiß gerade nicht wie das kurz und bündig hätte beschreiben können.
Ich habe gerade ein kleines VerständnisProblem bei folgendem Typoscript, vielleicht kann mir da jemand weiterhelfen.
10 = CONTENT
10 {
table = tx_selbstprogrammierte Extension
select {
pidInList = 50
orderBy = date ASC
selectFields = uid,date,time
andWhere.dataWrap = date+time>={date:U}
}
Kurze Erläuterung, in dieser (nicht von mir) selbstprogrammierten Extension kann man bei de Erstellung eines Datensatzes ein Datum (field=date) und eine Uhrzeit(field:time) eingeben, die werden jeweils in unterschiedlichen Datenbankfeldern gespeichert.
Nun will ich einer anderen Stelle eine Ausgabe dieser Datensätze machen, die allerdings nur bis zum eingetragen Datum+Uhrzeit angezeigt werden sollen (in der DB stehen die UNIX Time Formate).
Meine Frage ist jetzt allerdings WARUM obigen Code funktioniert und zwar explizit die letzte Zeile:
andWhere.dataWrap = date+time>={date:U}
hier erfolgt eine Addition der Datenbankfelder date und time, doch wo erfolgt die Berechnung? Innerhalb von Typoscript oder ist es eine MySQL Anweisung ?
Ich weiß im Moment leider auch nicht wie ich das testen könnte. Hat da vielleicht jemand einen Vorschlag ?
Also ich würde das mal so interpretieren:
date = unix timestamp des Datums
time = unix timestamp der Zeit
somit ergibt date+time den kompletten unix timestame Datum mit Uhrzeit.
10.06.2008 -> 1213048800
9:30 Uhr -> 34200 (Sekunden)
Ergibt Timestamp von 10.06.2008 um 9:30 Uhr 1213083000
date:U dürfte der aktuelle Unix-Timestamp sein.
Wenn sonst noch was unklar ist hilft oft absichtlich einen Fehler in der SQL-Anweisung zu produzieren und SQL-Debug einzuschalten.
Gruß
Michael
Hallo Michaelh74,
genau, so habe ich den Code bisher auch verstanden.
Mir ging es eher um die Verständnisfrage wo die addition ausgeführt wird, also in welchem Bereich die Addition von Datenbankfeldern erfolgt.
Ob TS diese Werte zusammenrechnet und dann erst an die DB abfrage übergibt oder ob die Werte von MySQL zusammengerechnet und verarbeitet werden.
Doch dank deines Tipps, habe ich das TS nochmal als normale Datenbankabfrage über phpMyadmin ausführen lassen. Und es scheint als wenn die Addition von Mysql durchgeführt wird.
Schade eigentlich, es gibt sicher die ein oder andere Verwendungsmöglihckeit wo es sich rein mit Typoscript lohnen würde das Ergebniss von Zwei Datenbanlfeldern auszugeben.
Du brauchst diese Addition ja nicht, in dem Beispiel gibt es halt 2 Felder (date, time) und das andWhere ist nur ein Beispiel, wie Du das mit Typoscript berechnen kannst, es ginge auch
andWhere = date+time>=UNIX_TIMESTAMP()
Wichtig ist doch nur, das Du mit andWhere eigene bedingungen formulieren kannst