Hallo Peter, danke für deinen "erleuchtenden" Tipp, manchmal bin ich zu verbohrt in eine Sache, und vergesse das Naheliegende...
Ich bin also deinem Rat gefolgt. Die SQL-Abfragen bestätigen im Prinzip das, was ich schon beschrieben habe. Die Abfrage mit "<=" liefert kein Ergebnis, die mit ">=" liefert das richtige Ergebnis. ABER: Ich bin immer davon ausgegangen, dass UNIX_TIMESTAMP("2016-06-24 00:00:00") als UTC 0 Wert zurückgegeben wird. Das tut es aber nicht. In der MySQL Doku steht: The server interprets date as a value in the current time zone and converts it to an internal value in UTC. Daraufhin habe ich mir UNIX_TIMESTAMP("2016-06-24 00:00:00") ausgeben lassen und bekomme: 1466719200! Dieser Wert entspricht UTC +2. Soweit meine Erkenntnisse. Jetzt habe ich aber keinen Plan wie ich mein Problem löse. Das Datum aus der Datenbank (event_date) ist vorgegeben und entspricht UTC 0. Wie kann ich also in meiner SQL-Abfrage event_date in einen Wert konvertieren, der die Server- / MySQL-Einstellung für die time zone berücksichtigt? Das ist meine aktuelle where-Klausel: where = event_date > UNIX_TIMESTAMP('2016-06-01 00:00:00') AND event_date <= UNIX_TIMESTAMP('2016-06-24 00:00:00') Johannes. > boun...@lists.typo3.org] Im Auftrag von Peter Linzenkirchner > Gesendet: Samstag, 4. Juni 2016 11:06 > > ich schalte in so einem Fall das Sql-Debugging in TYPO3 an (lasse mir also > fehlerhafte DB-Abfragen ausgeben). Danach baue ich absichtlich einen > Fehler in meine Abfrage ein, z. B. einen falschen Feldnamen. Dann wird mir > die ganze SQL-Abfrage im Frontend ausgegeben. So müsstest du dann > eigentlich sehen können, was falsch ankommen. Bzw. du kannst es direkt > auskopieren, den selbst eingebauten Fehler ausbessern und in phpMyAdmin > absenden. > > Gruß > Peter > > > > > Am 03.06.2016 um 18:03 schrieb Johannes C. Laxander <j...@laxander.com>: > > > > > > Mein aktueller Status: ich bin verzweifelt und langsam am > > Durchdrehen... ;) > > > > Ich habe nochmal etwas getestet: Bei dem folgenden Vergleich sollte > > genau ein Datensatz gefunden werden der in datum1 den Wert > > "1466726400" hat (entspricht 2016-06-24 00:00:00 UTC 0). > > > > where = datum1 > UNIX_TIMESTAMP("2016-06-01 00:00:00") AND datum1 > <= > > UNIX_TIMESTAMP("2016-06-24 00:00:00") > > Dieser Vergleich findet keinen Datensatz! > > > > where = datum1 > UNIX_TIMESTAMP("2016-06-01 00:00:00") AND datum1 > < > > UNIX_TIMESTAMP("2016-06-25 00:00:00") > > Dieser Vergleich findet genau den einen (richtigen) Datensatz. > > > > Eigenartig, der Vergleichsoperator ">=" funktioniert in dieser Abfrage: > > where = datum1 >= UNIX_TIMESTAMP("2016-06-24 00:00:00") AND > datum1 < > > UNIX_TIMESTAMP("2016-07-01 00:00:00") > > Auch dieser Vergleich findet genau den einen (richtigen) Datensatz. > > > > Man könnte jetzt auf den Gedanken kommen, dass der Vergleichsoperator > "<=" > > (kleiner oder gleich) von TypoScript irgendwie "verbogen" wird, was > > ich eigentlich nicht glauben kann/will!? > > Wenn das aber ausgeschlossen ist, wer kann mir dann bitte erklären > > warum der Vergleich mit <= nicht funktioniert? > > > > Hier ist der komplette Code: > > > > myRecords = CONTENT > > myRecords { > > table = mytable > > select { > > pidInList = 3 > > orderBy = datum1 > > selectFields = title,datum1 > > where = datum1 > UNIX_TIMESTAMP("2016-06-01 00:00:00") AND > datum1 > > <= > > UNIX_TIMESTAMP("2016-06-24 00:00:00") > > } > > } > > > > Wäre toll, wenn mir jemand weiterhelfen könnte, bevor ich die nächste > > Eskalationsstufe erreiche... ;) > > > > Gruß, Johannes. > > > > > > > >> > >> bin langsam am verzweifeln! :(( > >> > >> Ich versuche über eine CONTENT Object News-Datensätze auszulesen, > die > >> über Tagesdatum und ein zweites Datum in der Zukunft selektiert > >> werden sollen. > >> > >> Mit dieser SQL-Abfrage in phpMyAdmin bekomme ich die > entsprechenden > >> Datensätze: > >> > >> SELECT * FROM `tx_news_domain_model_news` WHERE `datum1` > > >> UNIX_TIMESTAMP(now()) AND `datum1` <= UNIX_TIMESTAMP("2016-06- > >> 24") > >> > >> Übertragen in TypoScript sieht WHERE so aus: > >> > >> where = datum1 > UNIX_TIMESTAMP(now()) AND datum1 <= > >> UNIX_TIMESTAMP("2016-06-24") > >> > >> Nur hier entspricht das Ergebnis nicht den angegebenen Bedingungen: > >> es werden KEINE Datensätze geliefert! > >> Eigentlich müsste der gleiche SQL-String auch hier funktionieren, > >> oder > > nicht? > >> Was ist dann der Unterschied? > >> > >> Bei dieser Schreibweise > >> where = datum1 > UNIX_TIMESTAMP("2016-06-01") AND datum1 <= > >> UNIX_TIMESTAMP("2016-06-24") > >> > >> entspricht das Ergebnis dem wie bei der SQL-Abfrage in phpMyAdmin. > >> > >> Mit einem Marker habe ich es auch schon versucht, das Ergebnis war > >> aber auch hier falsch. > >> > >> where = datum1 > UNIX_TIMESTAMP("###today###") AND datum1 <= > >> UNIX_TIMESTAMP("2016-06-24") > >> > >> markers.today = TEXT > >> markers.today.data = date: Y-m-d > >> > >> Wenn ich den Marker über page.9999 ausgebe, wird er so angezeigt: > >> 2016- > >> 06-01 > >> - eigentlich richtig! > >> > >> Ich verstehe es mittlerweile wirklich nicht mehr. Was mache ich falsch? > >> > >> Brauche Dringend Hilfe! Danke! > >> > >> Gruß, Johannes. > >> > >> _______________________________________________ > >> TYPO3-german mailing list > >> TYPO3-german@lists.typo3.org > >> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german > > > > _______________________________________________ > > TYPO3-german mailing list > > TYPO3-german@lists.typo3.org > > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german > > > > -- > Xing: http://www.xing.com/profile/Peter_Linzenkirchner > Web: http://www.typo3-lisardo.de > Facebook: http://tinyurl.com/lisardo-multimedia > > _______________________________________________ > TYPO3-german mailing list > TYPO3-german@lists.typo3.org > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german _______________________________________________ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german