frm表单-参数面板时间控件默认值问题总结

来源:互联网 发布:传奇变速源码 编辑:程序博客网 时间:2024/06/08 08:39


相信大家在做一个报表的时候,会按照时间这个条件来进行查询,可以是具体的某一个时间点(年、月、日、小时)博主这四个都有用到过


还有一种就是时间段的条件


还可以和别的如城市名等条件关联查询


原理上基本大同小异,就是在SQL语句中或模板参数中设置参数。主要是默认值的设置问题,


一、年

在右侧数据字典设置取值范围 range(2015,2017)

然后可以在上面空间值输入默认值,如2017



二、月

同理,输入 range(12) 

如果是时间段,则都输入  range(12) ,默认值取分别取1  12 


三、日

默认取当前时间前一个月的数据

TODATE(DATE(YEAR(),MONTH()-1,DAY()))
所以同理可以取前n年,前n月,前n天的数据。


四、时

TODATE(DATETONUMBER(now())-3600*2*1000 - MINUTE(now())*60*1000 - SECOND(now())*1000)
解释:先将当前时间转换为毫秒级别,再减去两个小时的毫秒,就能得到当前时间的前两个小时,如果再减去当前分钟以及秒对应的毫秒,就得到了当前时间的两个小时前的整点。

 五、SQL语句

SQL语句查询前两天的数据:

DateDiff(dd,date,getdate()-2)=0

图表一中获取前几个小时数据的方法为:

where TimePoint between dateadd(hh,-10,getdate()) and getdate()

获取前三十天的数据:

where TimePoint between dateadd(dd,-30,getdate()) and getdate()

或者有参数时,默认写:

DATEDELTA(today(),  -30)

以上几种类型以及方法基本可以获取任何时间点以及时间段的默认值,取值问题。