最近在对接实现帆软相关的可视化需求时,发现在帆软BI编辑仪表盘,新增自定义计算字段时,有一些函数是无法搜索得到的。其实,帆软BI和FineReport,两者的函数都是通用的。因此FineReport自带的一些函数,尽管在帆软BI找不到,但实际是可以使用的。这里暂且把日期函数做个总结,以备后用。
若日期大于某指定月的天数,则函数从指定月份的第一天开始往上累加。若日期大于两个或多个月的总天数,则函数把减去两个月或多个月的余数加到第三或第四个月上,依此类推。例如:DATE(2000,3,35)等于2000年4月4日的系列数。
DATEDELTA(date,deltadays):返回一个日期——date后deltadays的日期。
deltaDays可以为正值,负值,零。
DATEDELTA(“2008-08-08”,-10)等于2008-07-29。
DATEDELTA(“2008-08-08”,10)等于2008-08-18。
DATEDIF(start_date,end_date,unit):返回两个指定日期间的天数、月数或年数。
Start_date:代表所指定时间段的初始日期。
End_date:代表所指定时间段的终止日期。
Unit:函数返回信息的类型。
若unit=“Y”,则DATEDIF返回指定时间段的年差数。
若unit=“M”,则DATEDIF返回指定时间段的月差数。
若unit=“D”,则DATEDIF返回指定时间段的日差数。
若unit=“MD”,则DATEDIF忽略年和月,返回指定时间段的日差数。
若unit=“YM”,则DATEDIF忽略年和日,返回指定时间段的月差数。
若unit=“YD”,则DATEDIF忽略年,返回指定时间段的日差数。
DATEDIF(“2001/2/28”,“2004/3/20”,“Y”)等于3,即在2001年2月28日与2004年3月20日之间有3个整年。
DATEDIF(“2001/2/28”,“2004/3/20”,“M”)等于36,即在2001年2月28日与2004年3月20日之间有36个整月。
DATEDIF(“2001/2/28”,“2004/3/20”,“D”)等于1116,即在2001年2月28日与2004年3月20日之间有1116个整天。
DATEDIF(“2001/2/28”,“2004/3/20”,“MD”)等于8,即忽略月和年后,2001年2月28日与2004年3月20日的差为8天。
DATEDIF(“2001/1/28”,“2004/3/20”,“YM”)等于2,即忽略日和年后,2001年1月28日与2004年3月20日的差为2个月。
DATEDIF(“2001/2/28”,“2004/3/20”,“YD”)等于21,即忽略年后,2001年2月28日与2004年3月20日的差为21天。
DATETONUMBER(date):返回自 1970 年 1月 1日 00:00:00 GMT经过的毫秒数。
DATETONUMBER(“2008-08-08”)等于1218124800000。
DAY:(serial_number)返回日期中的日。DAY是介于1和31之间的一个数。
Serial_number:含有所求的年的日期.
FineReport将日期保存为系列数,一个系列数代表一个与之匹配的日期,以方便用户对日期进行数值式计算。
在1900年日期系统中,FineReport电子表格将1900年1月1日保存为系列数2,将1900年1月2日保存为系列数3,
将1900年1月3日保存为系列数4……依此类推。如在1900年日期系统,1998年1月1日存为系列数35796。
DAY(“2000/1/1”)等于1。
DAY(“2006/05/05”)等于5。
DAY(“1997/04/20”)等于20。
DAY(35796)等于1。
DAYS360(start_date,end_date,method):按照一年 360天的算法(每个月以 30天计,一年共计 12个月),
返回两日期间相差的天数,这在会计计算中将会用到。如果财务系统是基于一年 12个月,每月 30天,
可用此函数帮助计算支付款项。
Start_date和 end_date :是用于计算期间天数的起止日期。
Method:它指定了在计算中是采用欧洲方法还是美国方法。
Method定义 :
FALSE或忽略 美国方法 (NASD)。如果起始日期是一个月的 31号,则等于同月的 30号。如果终止日期是一个月的
31号,并且起始日期早于 30号,则终止日期等于下一个月的 1号,否则,终止日期等于本月的 30号。
TRUE欧洲方法。无论是起始日期还是终止日期为一个月的 31号,都将等于本月的 30号。
FineReport将日期保存为系列数,一个系列数代表一个与之匹配的日期,以方便用户对日期进行数值式计算。
在1900年日期系统中,FineReport电子表格将1900年1月1日保存为系列数2,将1900年1月2日保存为系列数3,
将1900年1月3日保存为系列数4……依此类推。如在1900年日期系统,1998年1月1日存为系列数35796。
DAYS360(“1998/1/30”,“1998/2/1”)等于 1.
DATEVALUE(date_text):返回代表date_text的一个系列数。此函数可用来把一个文本形式的日期转化为一个系列数。
Date_text:是在电子表格日期格式中代表日期的文本格式。例如“2000/2/28”
FineReport将日期保存为系列数,一个系列数代表一个与之匹配的日期,以方便用户对日期进行数值式计算。在1900年
日期系统中,永中Office电子表格将1900年1月1日保存为系列数2,将1900年1月2日保存为系列数3,将1900年1月3日保存
为系列数4……依此类推。如在1900年日期系统,1998年1月1日存为系列数35796。
DATEVALUE(“2000/1/1”)等于36526。
HOUR(serial_number):返回某一指定时间的小时数。函数指定HOUR为0(0:00)到23(23:00)之间的一个整数。
Serial_number:包含所求小时的时间。
HOUR(“11:32:40”)等于11。
MONTH:(serial_number)返回日期中的月。月是介于1和12之间的一个数。
Serial_number:含有所求的月的日期.
FineReport将日期保存为系列数,一个系列数代表一个与之匹配的日期,以方便用户对日期进行数值式计算。
在1900年日期系统中,FineReport电子表格将1900年1月1日保存为系列数2,将1900年1月2日保存为系列数3,
将1900年1月3日保存为系列数4……依此类推。如在1900年日期系统,1998年1月1日存为系列数35796。
MONTH(“2004/5/5”)等于5。
MONTH(35796)等于1。
SECOND(serial_number):返回某一指定时间的秒数,其值是介于0与59之间的一个整数。
Serial_number:包含所求秒数的时间。
SECOND(“15:36:25”)等于25。
SECOND(“15:36:25”,“HH:mm:ss”)等于25。
TIME(hour,minute,second):返回代表指定时间的小数。介于0:00:00(12:00:00 A.M.)与23:59:59(11:59:59 P.M.)之间的时间可返回0到0.99999999之间的对应数值。
Hour:介于0到23之间的数。
Minute:介于0到59之间的数。
Second:介于0到59之间的数。
TIME(14,40,0)等于2:40 PM。
TIME(19,43,24)等于7:43 PM。
TODATE()函数可以将各种日期形式的参数转换为日期类型。
它有三种参数的形式:
1参数是一个日期型的参数,那么直接将这个参数返回。
TODATE(DATE(2007,12,12))返回2007年12月12日组成的日期。
2参数是以从1970年1月1日0时0分0秒开始的毫秒数,返回对应的时间。
TODATE(1023542354746)返回2002年6月8日。
3参数是日期格式的文本,那么返回这个文本对应的日期。
TODATE(“2007/10/15”)返回2007年10月5日组成的日期。
TODATE(“2007-6-8”)返回2007年6月8日组成的日期。
4有两个参数,第一个参数是一个日期格式的文本,第二个参数是用来解析日期的格式。
TODATE(“1/15/07”,“MM/dd/yy”)返回07年1月15日组成的日期.
注意:此处的格式中月份必须大写MM,年份小写:yy(不可以为yyyy)。天份小写:dd。
WEEKDAY(Serial_number):获取日期并返回星期数。返回值为介于0到6之间的某一整数,分别代表星期中的某一天(从星期日到星期六)。
Serial_number:输入的日期
FineReport将日期保存为系列数,一个系列数代表一个与之匹配的日期,以方便用户对日期进行数值式计算。
在1900年日期系统中,FineReport电子表格将1900年1月1日保存为系列数2,将1900年1月2日保存为系列数3,
将1900年1月3日保存为系列数4……依此类推。如在1900年日期系统,1998年1月1日存为系列数35796。
WEEKDAY(“2005/9/10”)等于6(星期六)。
WEEKDAY(“2005/9/11”)等于0(星期日)。
WEEKDAY(35796)等于4(星期四)。
WEEKNUM(serial_num):返回一个代表一年中的第几周的数字。
Serial_num:表示输入的日期。
FineReport将日期保存为系列数,一个系列数代表一个与之匹配的日期,以方便用户对日期进行数值式计算。
在1900年日期系统中,FineReport电子表格将1900年1月1日保存为系列数2,将1900年1月2日保存为系列数3,
将1900年1月3日保存为系列数4……依此类推。如在1900年日期系统,1998年1月1日存为系列数35796。
WEEKNUM(“2005/1/1”)等于1。
WEEKNUM(“2005/1/6”)等于2。
WEEKNUM(35796)等于1。
YEAR:(serial_number)返回日期中的年。Year是介于1900和9999之间的一个数。
Serial_number:含有所求的年的日期.
FineReport将日期保存为系列数,一个系列数代表一个与之匹配的日期,以方便用户对日期进行数值式计算。
在1900年日期系统中,FineReport电子表格将1900年1月1日保存为系列数2,将1900年1月2日保存为系列数3,
将1900年1月3日保存为系列数4……依此类推。如在1900年日期系统,1998年1月1日存为系列数35796。
YEAR(“2000/1/1”)等于2000。
YEAR(“2006/05/05”)等于2006。
YEAR(“1997/04/20”)等于1997。
YEAR(35796)等于1998。
YEARDELTA(date,delta):返回指定日期后delta年的日期。
YEARDELTA(“2008-10-10”,10)等于2018-10-10。
1)‘时间间隔’是一个下拉框,通过取‘时间间隔’的值,切换‘数据库查询’的数据源,并使用‘关联数据集’关联在一起。
2)数据库查询中,不同的时间间隔使用不同的
日期
函数
,对时间进行处理。
3)对处理后的时间分组,即可得到
3.添加数据库查询
ds0:查询原始数据,不对
日期
处理。mo
var o = this.options;
var self = this;
if (this.options.need2BuildConfig === true && this.options.data) {
this.options.data.resetStatus(this.createDependen
注意:
日期
控件
的
控件
名需要和下面JS中getWidgetByName(“
控件
名”)保持一致
var start = this.options.form.getWidgetByName("stamont").getValue();
var end = this.options.form.getWidgetByName("endmont").getValue();
1、再建一个数据集,用原数据同样的语句,查
日期
参数
处理下 '${MONTHDELTA(
日期
参数
名,-1)}' 这个表示
参数
的值往回退一个月
MONTHDELTA(date,delta):返回
指定
日期
date后delta个月的
日期
。
在单元格中输入:=date(2011,1,10),其返回值为2011-01-10。
若月份大于12将从年的一月份开始往上累加,如在单元格中输入:=date(2011,13,10),其返回值为2012-01-10。
注:
日期
同理,若超过最大天数,会从月的一号开始向上累加。
当前
日期
(年月日)...
### 回答1:
帆软
BI
和Power
BI
都是商业智能工具,它们都可以用于数据分析和可视化。
帆软
BI
提供了更多的数据源连接方式和数据处理能力,而Power
BI
则更加注重数据可视化和交互性。具体使用哪一个工具,需要根据具体的需求和场景来选择。
### 回答2:
帆软
BI
和Power
BI
虽然都是提供商业智能(
BI
)解决方案的工具,但在多个方面有所不同。
1. 功能和特点:
-
帆软
BI
提供了丰富的数据分析和可视化功能,支持多种数据源的连接和数据透视分析,具有强大的报表和仪表板制作能力。
- Power
BI
也具备类似的功能,同时还提供了强大的自助式数据准备和清洗功能,可以从多个数据源提取、转换和加载数据。
2. 使用灵活性:
-
帆软
BI
提供了多种部署方式,包括本地安装和云端部署,可以根据企业需求进行选择。同时,它也可以灵活地对接不同的数据源,并提供了多种导入和导出数据的方式。
- Power
BI
是微软提供的云端
BI
工具,其数据存储和处理都在云端完成,可以实现跨平台和跨设备的数据共享和协作,适合需要实时数据分析和共享的团队使用。
3. 用户界面和易用性:
-
帆软
BI
的用户界面相对较为复杂,需要一定的学习成本。但它提供了丰富的可定制性和高度灵活性,可以设计出精美的报表和输入表单。
- Power
BI
的用户界面相对简洁和直观,易于上手和操作。它提供了大量的预设数据可视化组件和模板,使得用户可以快速制作各种类型的报表和仪表板。
4. 价格与授权:
-
帆软
BI
采用许可证授权方式,用户需要根据功能需求和用户规模购买相应的授权,价格相对较高。
- Power
BI
提供了免费版和付费版两种版本,免费版功能有限,付费版则按用户数和功能需求收费。
综上所述,
帆软
BI
和Power
BI
在功能、使用灵活性、用户界面和价格等方面存在一些差异。企业可以根据自身需求和预算进行选择。
### 回答3:
帆软
BI
和Power
BI
是两种常用的企业级商业智能工具,它们在功能、价格、易用性等方面有一些相似和不同之处。
首先,在功能方面,
帆软
BI
和Power
BI
都具备了数据的连接、清洗、建模、分析和可视化等常见商业智能功能。它们都支持多种数据源的连接,如关系型数据库、Excel、云服务等,并提供了丰富的数据处理和分析功能,用于生成交互式报表、图表和仪表盘。
然而,在细节层面,
帆软
BI
和Power
BI
略有不同。
帆软
BI
提供了更多的数据操作和计算选项,如数据透视表、数据筛选、计算字段等,可以更加灵活地处理和分析数据。而Power
BI
则更加侧重于可视化,提供了大量的图表和图形选项,以及更丰富的数据视觉效果。
其次,
帆软
BI
和Power
BI
在定价上也有一些差异。
帆软
BI
采用的是授权模式,用户需要购买相应的许可证,价格相对较高。而Power
BI
则提供了免费的个人版和付费的企业版选择,个人版功能相对有限,而企业版则提供了更多高级功能和服务。
最后,易用性方面,Power
BI
在操作界面和交互方式上更加简洁和直观,用户可以通过拖拽、选择和配置等方式快速创建可视化报表。
帆软
BI
则相对复杂一些,对于新手用户需要一定的学习和适应时间。
综上所述,
帆软
BI
和Power
BI
都是强大的商业智能工具,具备了基本的数据分析和可视化功能。选择适合的工具取决于用户的需求和使用习惯,有需求更灵活数据操作和计算的用户可能更适合选择
帆软
BI
,而需要快速创建交互式可视化报表的用户则可以选择Power
BI
。