将日期字符串传递给ibatis查询中的函数

时间:2012-01-09 20:52:54

标签: ibatis

我将日期字符串传递给用于比较的ibatis查询。但是,我收到了错误

SELECT PATIENT_SUFFIX_NM,
       INTRPT_CLM_TXT,
       DAYS(DATE(#{batch_dt_ud})) - DAYS(INTRPT_CLM_ENTR_TS) AGE_OF_CLAIM
FROM INTERRUPTED_CLAIM
WHERE KEYER_ID=#{keyer_id}

错误是

  

"准备好的声明包含无效使用参数标记"

它正在抱怨DAYS(DATE(#{batch_dt_ud}))的日期函数用法 我不能将ibatis字符串参数传递给日期函数吗?。

感谢名单。

1 个答案:

答案 0 :(得分:2)

你可以尝试定义一个parameterMap。

<parameterMap id="ParameterMapName"  type="ClassTypeOfHowYouPassParameters">
    <parameter property="keyer_id" mode="IN"/>
    <parameter property="batch_dt_ud" jdbcType="DATE" mode="IN"/>
</parameterMap>

您的查询将类似于:

<select id="QueryNameForCalling" parameterMap="ParameterMapName" resultType="string">
       SELECT PATIENT_SUFFIX_NM,
       INTRPT_CLM_TXT,
       DAYS(DATE(#{batch_dt_ud})) - DAYS(INTRPT_CLM_ENTR_TS) AGE_OF_CLAIM
       FROM INTERRUPTED_CLAIM
       WHERE KEYER_ID=#{keyer_id}
</select>

我假设您返回一个字符串resultType="string"