Vergleicht Zeitstempel mit mybatis, postgresql

Ich bin mit mybatis-Abfrage auf meiner postgres DB, Mein problem ist das comparaison zwischen den Zeitstempeln, ich denke, dass es nicht richtig funktioniert, da es sich nicht retrun die benötigten Ergebnisse auch es ist nicht das werfen einer Ausnahme.
Hier ist mein code

<select id="select_count" parameterType="map" resultType="map">
        select count(*) as count, TO_CHAR(created_on, #{xaxis}) as xaxis,state 
        from my_table
        where 1 = 1
        <if test="fromdate != null"> and created_on &gt;= #{fromdate} </if>
        <if test="todate != null"> and created_on &lt;= #{todate} </if>
        <if test="state != null"> and state = #{state} </if>
        GROUP BY xaxis, state
</select>

und hier ist mein java-code

public List<Map<String, Object>> getStatesCount(Date fromDate,
                Date toDate, String state, String xAxis) {
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("fromdate", fromDate);
        params.put("todate", toDate);
        params.put("state", state);
        params.put("xaxis", "yyyy-mm-dd");
        List<Map<String, Object>> sqlResults = (List<Map<String, Object>>) template.selectList(SELECT_COUNT, params);
        return sqlResults;
    }

- und dies ist der code für die Erstellung meine_tabelle

CREATE SEQUENCE my_table_seq START WITH 1 INCREMENT BY 1;
CREATE TABLE my_table
(
   id INT8 NOT NULL DEFAULT NEXTVAL('my_table_seq'),
   state VARCHAR(20),
   created_on TIMESTAMP WITH TIME ZONE,
   PRIMARY KEY (id),
);

Ich weiß, dass meine Tabelle die aus vielen Zeilen mit der 'created_on' prop eingestellt , lassen Sie uns sagen, das heutige Datum. Aber wenn ich den pass meiner zwei Datum-params oder sogar einer von Ihnen , die select-Abfrage nicht alle Daten.

So, wie die Abfrage korrekt mit Zeitstempel und java.util.Date ?

  • ich denke, dass ich das problem gefunden : die Schreibweise des Datums-Parameter wurden nicht richtig geschrieben, Alles ist gut jetzt, thx
  • Was die Abfrage tut MyBatis generieren? (Aktivieren Sie die SQL-Protokollierung in MyBatis oder aktivieren log_statement = 'all' im postgresql.conf)
  • Wenn Sie denken, diese Frage könnte nützlich sein, um andere bitte posten Sie Ihre eigene Antwort, und akzeptieren Sie es, sobald der neue-user-timer auf Stack Overflow können Sie; ich werde upvote.
  • es ist meine Schuld, ich habe nicht achten Sie auf die Namen der Parameter, es funktioniert wie ein Charme, BTW wie mybatis zu aktivieren Protokollierung?
  • Ich glaube nicht, verwenden MyBatis so müsste ich es nachschlagen in der Dokumentation, Stack Overflow-Suche oder auf Google, genauso wie du.
  • Sorry Craig Ringer, ich bin ganz neu SOF, bearbeitet ich meine post, um die richtige Antwort und jetzt habe ich m auf der Suche, wie man es akzeptieren
  • Keine Sorge. Sie nicht Bearbeiten Sie Ihre post hinzufügen der Antwort, die Sie veröffentlichen, eine Antwort auf die Frage. Siehe stackoverflow.com/questions/how-to-answer . Für mich dies ist als ein edit-Feld auf der Unterseite der Seite, nach der Frage und Kommentare. Es ist möglich diese Option deaktiviert ist, indem Sie einen timer für Sie als Stack-Überlauf hat einige lästige (aber wohl notwendige) Beschränkung der neuen Benutzer zu verwalten, spam und beleidigendes Verhalten. Ich würde post die Antwort selbst, aber ich möchte Ihnen die Partitur für die Mühe des Schreibens eine gute Frage-und-Nachbereitung auf Sie.

Schreibe einen Kommentar