如下,kssj和jssj是两个日期参数控件,我想让kssj取得是当前值前一天晚八点半,jssj当前值

如下,kssj和jssj是两个日期参数控件,我想让kssj取得是当前值前一天晚八点半,jssj当前值晚上八点半,即我在kssj的日期控件选择了2023-01-04,kssj的值就应该是2023-01-03 20:30:00,jssj应该是2023-01-04 20:30:00,between and 那里的公式应该怎么写呢?

sql如下

select ryid,ryxm,

min(dlsj)as 

dlsj,

max(tcsj)as 

tcsj

from testA

where 1=1

${if(kssj !=''||jssj !='',"and dlsj between  '" + kssj + "' and DATEADD(DAY,1,'" + jssj + "')","")}

想得到的数据:and dlsj between  '2023-01-03 20:30:00' and '2023-01-04 20:30:00'

FineReport Vessel1213 发布于 2023-2-9 16:27
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-2-9 16:30(编辑于 2023-2-9 16:40)

select ryid,ryxm,

min(dlsj)as 

dlsj,

max(tcsj)as 

tcsj

from testA

where 1=1

${if(kssj !=''||jssj !='',"and dlsj between  '" + FORMAT(DATEDELTA(kssj,-1),"yyyy-MM-dd 20:30:00") + "' and '"+FORMAT(jssj,"yyyy-MM-dd 20:30:00")+"'","")}

------------

我觉得上面的判断有问题改一下.因为有个日期为空的 between就出问题了

select ryid,ryxm,

min(dlsj)as 

dlsj,

max(tcsj)as 

tcsj

from testA

where 1=1

${if(len(kssj)==0,""," and dlsj>='"+FORMAT(DATEDELTA(kssj,-1),"yyyy-MM-dd 20:30:00")+"'")}

${if(len(jssj)==0,""," and dlsj<='"+FORMAT(jssj,"yyyy-MM-dd 20:30:00")+"'")}

  • 1关注人数
  • 239浏览人数
  • 最后回答于:2023-2-9 16:40
    请选择关闭问题的原因
    确定 取消
    返回顶部