如何在Mybatis中的select sql中连接数字类型? [英] How to concat a number type in a select sql in Mybatis?
问题描述
我想根据搜索号参数选择一个结果,例如,如果我传递7,我希望sql语句像select * from student其中DATE_SUB(CURDATE(),INTERVAL 7 DAY)< = date( CREATETIME),现在在Mybatis中,我尝试这样编写,并将$ {pd.intervalDay}更改为#{pd.intervalDay},但这是错误的。如何更改它?
<! - pd是hasmap类型 - >
< select id =selectstudentresultparameterType =pageresultType =pd>
从学生中选择*
< where>
< if test =pd.intervalDay!= null>
和DATE_SUB(CURDATE(),INTERVAL $ {pd.intervalDay} DAY)< = date(a.UPDATETIME)
I want to select a result according to the search number parameter,for example, if I pass 7, I want the sql statement like select * from student where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(CREATETIME),Now in Mybatis,I try to write like this,and also change ${pd.intervalDay} to #{pd.intervalDay},but it is wrong.How to change it?
<!-- pd is hasmap type -->
<select id="selectstudentresult" parameterType="page" resultType="pd">
select * from student
<where>
<if test="pd.intervalDay!=null">
and DATE_SUB(CURDATE(), INTERVAL ${pd.intervalDay} DAY) <= date(a.UPDATETIME)
推荐答案
{pd.intervalDay}到#{pd.intervalDay},但它是错的。怎么改变它?
<! - pd是hasmap类型 - >
< select id = selectstudentresultparameterType =pageresultType =pd>
select * from student
< where>
< if test =pd.intervalDay!= null>
和DATE_SUB(CURDATE(),INTERVAL
{pd.intervalDay} to #{pd.intervalDay},but it is wrong.How to change it?
<!-- pd is hasmap type -->
<select id="selectstudentresult" parameterType="page" resultType="pd">
select * from student
<where>
<if test="pd.intervalDay!=null">
and DATE_SUB(CURDATE(), INTERVAL
{pd.intervalDay} DAY)< = date(a.UPDATETIME)
{pd.intervalDay} DAY) <= date(a.UPDATETIME)
尝试使用DATEDIFF:
DATEDIFF(CURDATE(),CREATETIME)< = 7
Try to use DATEDIFF instead:
DATEDIFF(CURDATE(), CREATETIME) <= 7
这篇关于如何在Mybatis中的select sql中连接数字类型?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!