Questions & Answers

SOLVED
Jacky
I'm new here

contentSelect mit einem Datum und mode="Date"

Jump to solution

Hallo zusammen,

ich habe in einer Tabelle eine Spalte fรผr ein Datum, das anhand der Eingabekomponente $CMS_INPUT_DATE$ mit mode="date" gewรคhlt wird.

Die Spalte in der Tabelle habe ich als "FIRSTspirit-Editor" angelegt (weil im Falle von mode="date" der Datentyp "Date" nicht zur Verfรผgung steht).

Nun mรถchte ich per contentSelect eine Abfrage durchfรผhren, die mir alle Eintrรคge von heute liefert:

<CMS_FUNCTION name="contentSelect" resultname="fs_events">

      <CMS_PARAM name="schema" value="Events" />

      <CMS_VALUE_PARAM  name='now' value='#global.now' />

      <QUERY entityType="Event">

           <FILTERPARAM parameter="now" datatype="???"/>

           <EQ attribute="date" parameter="now"/>

      </QUERY>

</CMS_FUNCTION>

Wie muss die Abfrage aussehen, damit sie funktioniert?

Alternativ habe ich auch versucht das Datum als "long" anzulegen, aber hier ist die Abfrage immer null, weil der Wert von #global.now (in Millisekunden) nicht mit meinem Wert aus der Tabelle รผbereinstimmt, obwohl es dasselbe Datum ist (ich nehme an, dass die Uhrzeiten unterschiedlich gesetzt sind?).

Wie lรถse ich das nun am besten?

Vielen Dank und viele GrรผรŸe,

Jacky

0 Kudos
1 Solution

Accepted Solutions
hoebbel
Crownpeak employee

Hallo Jacky,

wenn der Datentyp date beim mapping nicht zur Verfรผgung steht, dann bedeutet dies, dass als mode entweder date oder time gewรคhlt wurde.

Ich tippe mal auf date (also nur der Tag ist auswรคhlbar).

Als Speicherformat wรผrde ich long benutzen.

Als Vergleichswert dann #global.now.set("hour",0).set("minute",0).set("second",0).set("millisecond",0) [also heute um Mitternacht]

Gestern wรคre somit #global.now.set("hour",0).set("minute",0).set("second",0).set("millisecond",0).plus(-1000*60*60*24)

und morgen das selbe ohne das Minuszeichen Smiley Wink

Viele Grรผsse aus Dortmund,

  Holger

View solution in original post

0 Kudos
6 Replies
MarcusDau
Occasional Collector

Warum steht denn der Datentyp Date nicht zur Verfรผgung? Finde ich merkwรผrdig, denn auch wir haben hier solche Konstrukte:

<CMS_INPUT_DATE name="cs_erscheinungsdatum" convertEntities="standard" hFill="yes" mode="date" useLanguages="no">

        <LANGINFOS>

          <LANGINFO lang="*" label="Erscheinungsdatum"/>

        </LANGINFOS>

      </CMS_INPUT_DATE>

Daten-Schema:

dau_290.jpg

Das funktioniert tadellos und dann kann man bei der Abfrage auch  datatype="java.util.Date" einsetzen.

GrรผรŸe

Marcus

Das steht so in der Dokumentation bei der Eingabekomponente CMS_INPUT_DATE -> mode:

http://www.e-spirit.com/odfs42/de/vorlagenentwicklung/formular/cmsinput/cms_input_date/date.html#s0_...

Ich konnte das Datum beim Mapping auch nur auswรคhlen, wenn ich dieses mit Datentyp "long" oder FIRSTspirit-Editor angelegt habe.

Ich habe es nun so gelรถst, dass ich den mode="date" erst nach dem Mapping gesetzt habe. Jetzt kann ich mit datatype="java.util.Date" arbeiten.

Vielen Dank.

GrรผรŸe,

Jacky

0 Kudos
hoebbel
Crownpeak employee

Hallo Jacky,

wenn der Datentyp date beim mapping nicht zur Verfรผgung steht, dann bedeutet dies, dass als mode entweder date oder time gewรคhlt wurde.

Ich tippe mal auf date (also nur der Tag ist auswรคhlbar).

Als Speicherformat wรผrde ich long benutzen.

Als Vergleichswert dann #global.now.set("hour",0).set("minute",0).set("second",0).set("millisecond",0) [also heute um Mitternacht]

Gestern wรคre somit #global.now.set("hour",0).set("minute",0).set("second",0).set("millisecond",0).plus(-1000*60*60*24)

und morgen das selbe ohne das Minuszeichen Smiley Wink

Viele Grรผsse aus Dortmund,

  Holger

0 Kudos
hoebbel
Crownpeak employee

Hallo Jacky,

Jacky schrieb:

Ich habe es nun so gelรถst, dass ich den mode="date" erst nach dem Mapping gesetzt habe. Jetzt kann ich mit datatype="java.util.Date" arbeiten.

keine gute Idee. Das WIRD zu Folgeproblemen fรผhren (spรคtestens bei der nรคchsten Zeitumschaltung)

Viele Grรผsse aus Dortmund,

  Holger

0 Kudos
MarcusDau
Occasional Collector

Vielleicht haben wir bei der Anlage des Schemas erst einen anderen mode verwendet. Aber zumindest klappt es so bei uns! Spannend.

0 Kudos

Hallo Holger,

es ging genau darum, dass ich mode="date" gewรคhlt hatte und nun nur die Wahl zwischen Datentyp "FIRSTspirit-Editor" und "long" hatte.

Die Abfrage funktioniert nun, vielen Dank Smiley Happy .

An den Vergleichswert musste ich noch ein .getTime() anhรคngen, um die Millisekunden zu erhalten.

Viele GrรผรŸe,

Jacky

0 Kudos

Type a product name