1
我使用mybatis來查詢我的postgres數據庫,我的問題是時間戳之間的比較,我認爲它不能正常工作,因爲它不會重新運行所需的結果,即使它沒有投擲任何異常。 這裏是我的代碼比較時間戳與mybatis,postgresql
<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 >= #{fromdate} </if>
<if test="todate != null"> and created_on <= #{todate} </if>
<if test="state != null"> and state = #{state} </if>
GROUP BY xaxis, state
</select>
,這裏是我的Java代碼
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;
}
,這是一個用於創建代碼MY_TABLE
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),
);
我知道,我的表中有許多行'created_on'道具設置爲,比方說,今天的日期。但是,當我通過我的兩個日期參數或甚至其中一個,選擇查詢不會返回任何數據。
那麼如何正確查詢時間戳和java.util.Date
?
代碼:中日期參數的拼寫不正確,現在一切正常,thx – 2013-03-26 09:02:28
MyBatis生成什麼查詢? (在MyBatis中啓用SQL日誌記錄或在'postgresql.conf'中啓用'log_statement ='all'') – 2013-03-26 09:02:30
如果您認爲這個問題可能對其他人有用,請發佈您自己的答案,並在Stack Overflow上的新用戶定時器讓你;我會高興。 – 2013-03-26 09:03:16