我将日期字符串传递给用于比较的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字符串参数传递给日期函数吗?。
感谢名单。
答案 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"