查询日期  前后各半个小时数据显示

是这样的  数据库的日期  我用来查询  但是一天之内从早到晚的数据的时间点很多(精确到秒了)然后我就想选中一个时间,出来前半个小时的数据和后半个小时的数据(因为全部展示出来数据太多了,曲线都压的看不到趋势变化了),想问下,这样的话 在帆软的sql里面怎么写呀


诶,,求大神解解惑,



 where 1=1 

and  format(cast(time  as datetime),'yyyy-MM-dd HH:mm:ss')  between '${TODATE(DATETONUMBER('${查询日期}')-30*60*1000)}' and 

'${TODATE(DATETONUMBER('${查询日期}')+30*60*1000)}'

这样看是不是特别累 数据库字段time是float类型,我首先给他转换成日期类型,再在报表的参数面板设置    ${查询日期}     这样写好像有错,出不来数据,好复杂感觉











更新答案:  参考axing

format(cast(字段 as datetime),'yyyy-MM-dd HH:mm:ss')  between 

'${TODATE(DATETONUMBER(查询日期)-180*60*1000)}' and 

'${TODATE(DATETONUMBER(查询日期)+180*60*1000)}'   参数不加引号可以出来结果


FineReport 正新-雪物语 发布于 2018-12-29 10:18 (编辑于 2019-3-19 15:28)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
axingLv6专家互助
发布于2018-12-29 11:01

比如日期参数是rq,那么sql如下

where 1=1 
and 日期 between '${TODATE(DATETONUMBER(rq)-30*60*1000)}' and '${TODATE(DATETONUMBER(rq)+30*60*1000)}'


最佳回答
0
邵天木Lv5见习互助
发布于2018-12-29 14:20(编辑于 2018-12-29 14:21)

设置两个参数控件,一个是日期控件,格式是yyyy-mm-dd。第二个是下拉框控件,自定字典0-23.

image.png



然后在sql 里做参数拼接

--定义两个变量接收参数。

DECLARE @str VARCHAR(20)

DECLARE @str2 VARCHAR(10)

SET @str ='${日期}' 

SET @str2='${小时}'


--定义结束时间,拼接字符成时间格式

DECLARE @time  DATETIME 

SET @time =@str+' '+@str2+':30:00.000'


那么统计区间就是

 where 1=1 and time between DATEADD(hh,-1,@time) and @time


最佳回答
0
KerydiaLv5中级互助
发布于2018-12-29 14:46

and  format(cast(time  as datetime),'yyyy-MM-dd HH:mm:ss')  between 

'${TODATE(DATETONUMBER('"+查询日期+"')-30*60*1000)}' and 

'${TODATE(DATETONUMBER('"+查询日期+"')+30*60*1000)}'

改成这个就可以了

  • 4关注人数
  • 919浏览人数
  • 最后回答于:2019-3-19 15:28
    请选择关闭问题的原因
    确定 取消
    返回顶部