目录:
- 1. 概述
- 2. 取日期中的月(MONTH)
- 3. 取一年中的天数(DAYSOFYEAR)
- 4. 取日期中的年(YEAR)
- 5. MONTHDELTA
- 6. 时间差(DATEDIF)
- 7. DATEDELTA
- 8. WEEKDATE
- 9. DAYS360
- 10. 转换为日期类型(TODATE)
- 11. 取日期中的日(DAY)
- 12. 取农历时间(LUNAR)
- 13. 取分钟数(MINUTE)
- 14. 取某月天数(DAYSOFMONTH)
- 15. 时间差(DATESUBDATE)
- 16. 日期转毫秒数(DATETONUMBER)
- 17. DAYVALUE
- 18. DATE
- 19. 取当前时间(NOW)
- 20. 取小时数(HOUR)
- 21. YEARDELTA
- 22. DAYSOFQUARTER
- 23. WEEK
- 24. 取星期数(WEEKDAY)
- 25. 取当前日期(TODAY)
- 26. TIME
- 27. 取秒数(SECOND)
- 28.DATEINWEEK
1. 概述编辑
1.1 版本
FineBI版本 |
---|
5.1 |
1.2 使用范围
使用位置 | |
---|---|
自助数据集 | 新增列、过滤 |
仪表板 | 添加计算字段 |
注:函数中以日期作为参数因子的,其中日期的形式都必须是 yyyy/mm/dd 或 yyyy-MM-dd 。而且必须用英文环境下双引号(" ")引用。
2. 取日期中的月(MONTH)编辑
MONTH(serial_number):返回日期中的月,月是介于 1 和 12 之间的一个数。
Serial_number:含有所求的月的日期。
注: FineBI 将日期保存为系列数,一个系列数代表一个与之匹配的日期,以方便用户对日期进行数值式计算。
在 1900 年日期系统中,FineBI 电子表格将 1900 年 1 月 1 日保存为系列数 2,将 1900 年 1 月 2 日保存为系列数 3, 将 1900 年 1 月 3 日保存为系列数 4……依此类推。如在 1900 年日期系统,1998 年 1 月 1 日存为系列数 35796。
示例:
MONTH("2000/1/1") 等于 1;
MONTH("2006/05/05") 等于 5;
MONTH("1997/04/20") 等于 4;
MONTH("2000-1-1","yyyy-MM-dd") 等于 1;
MONTH("2006-05-05","yyyy-MM-dd") 等于 5;
MONTH("1997-04-20","yyyy-MM-dd") 等于 4;
MONTH( 35796 ) 等于 1。
3. 取一年中的天数(DAYSOFYEAR)编辑
DAYSOFYEAR(year):返回某年包含的天数。
示例:
DAYSOFYEAR (2008) 等于 366 ,等价于:DAYSOFYEAR("2008-01-01") 。
4. 取日期中的年(YEAR)编辑
YEAR(serial_number):返回日期中的年。Year 是介于 1900 和 9999 之间的一个数。
Serial_number:含有所求的年的日期。
注: FineBI 将日期保存为系列数,一个系列数代表一个与之匹配的日期,以方便用户对日期进行数值式计算。
在 1900 年日期系统中,FineBI 电子表格将 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("2000-1-1","yyyy-MM-dd") 等于 2000;
YEAR("2006-05-05","yyyy-MM-dd") 等于 2006;
YEAR("1997-04-20","yyyy-MM-dd") 等于 1997;
YEAR(35796) 等于 1998。
5. MONTHDELTA编辑
MONTHDELTA(date,delta):返回指定日期 date 后 delta 个月的日期。
示例:
MONTHDELTA("2008-08-08", 4) 等于2008-12-08。
6. 时间差(DATEDIF)编辑
DATEDIF(start_date,end_date,unit):返回两个指定日期间的天数、月数或年数。
Start_date:代表所指定时间段的初始日期。
End_date:代表所指定时间段的终止日期。
注::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 天。
7. DATEDELTA编辑
DATEDELTA(date, deltadays):返回一个日期 date 后 deltadays 的日期。deltaDays 可以为正值,负值,零。
示例:
DATEDELTA("2008-08-08", -10) 等于 2008-07-29;
DATEDELTA("2008-08-08", 10) 等于 2008-08-18。
8. WEEKDATE编辑
WEEKDATE(year,month,weekOfMonth,dayOfWeek):返回指定年月的指定周的周几的具体日期。
1)默认周开始于星期日时,此时系统中周的范围为星期日到星期六。
示例:
WEEKDATE(2009,10,2,1) 返回的是 2009 年的 10 月的第二个周的第一天即星期天的日期,返回的是 2009-10-04;
最后一个参数dayOfWeek为 -1 时,表示这个周的最后一天。
示例:
WEEKDATE(2009,12,1,-1) 返回的是 2009 年的 12 月的第一个周的最后一天即星期六的日期,返回的是 2009-12-05。
2)当设置 周开始于星期一 时,此时系统中周的范围为星期一到星期日。
9. DAYS360编辑
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 号。
注:
FineBI 将日期保存为系列数,一个系列数代表一个与之匹配的日期,以方便用户对日期进行数值式计算。
在 1900 年日期系统中,FineB 电子表格将 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。
10. 转换为日期类型(TODATE)编辑
TODATE() 函数可以将各种日期形式的参数转换为日期类型。
它有三种参数的形式:
1. 参数是一个日期型的参数,那么直接将这个参数返回。
示例:
TODATE(DATE(2007,12,12)) 返回2007年12月12日组成的日期。
2. 参数是以从 GMT 时间 1970 年 1 月 1 日 0 时 0 分 0 秒开始的毫秒数(相当于北京时间 1970-01-01 08:00:00),返回对应的时间,返回值精确到毫秒。
示例:
TODATE("1461982894,000") 返回 2016-04-30 10:21:34。
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。
特别的,"yyyyMMdd" 是用来解析形如 "20081230" 之类的日期格式的。比如 TODATE("20110830","yyyyMMdd") 返回 11 年 08 月30 日组成的日期。
5. 有三个参数,第一个参数是一个日期格式的文本,第二个参数是用来解析日期的格式,第三个参数为解析日期的语言,如:zh(中文),en(英文)。
示例:
TODATE("星期三 1/15/07","EEE mm/dd/yy","zh") 返回 07 年 1 月 15 日组成的日期,使用“zh(中文)”才能够正常解析“星期三”这个字符串。
11. 取日期中的日(DAY)编辑
DAY(serial_number):返回日期中的日。DAY是介于 1 和 31 之间的一个数。
Serial_number:含有所求的年的日期。
备注:FineBI 将日期保存为系列数,一个系列数代表一个与之匹配的日期,以方便用户对日期进行数值式计算。
在 1900 年日期系统中,FineBI 电子表格将 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("2000-1-1","yyyy-MM-dd") 等于 1;
DAY("2006-05-05","yyyy-MM-dd") 等于 5;
DAY("1997-04-20","yyyy-MM-dd") 等于 20;
DAY(35796) 等于 1。
12. 取农历时间(LUNAR)编辑
LUNAR(year,day,month): 返回当前日期对应的农历时间。year,month,day:分别对应年月日。
示例:
如果需要查询 2011 年 7 月 21日对应的农历时间,则:
LUNAR(2011,7,21) 结果将显示为:辛卯年六月廿一。
LUNAR(2001,7,21) 结果显示:辛巳年六月初一 。本公式支持的时间段为 1900-2100 年。
13. 取分钟数(MINUTE)编辑
MINUTE(serial_number):返回某一指定时间的分钟数,其值是介于 0 与 59 之间的一个整数。
Serial_number:包含所求分钟数的时间。
示例:
MINUTE("15:36:25") 等于 36;
MINUTE("15:36:25","HH:mm:ss") 等于 36。
14. 取某月天数(DAYSOFMONTH)编辑
DAYSOFMONTH(date):返回从1900年1月后某年某月包含的天数。
示例:
DAYSOFMONTH("1900-02-01") 等于 28;
DAYSOFMONTH("2008/04/04") 等于 30。
15. 时间差(DATESUBDATE)编辑
DATESUBDATE(date1,date2,op):返回两个日期之间的时间差。
op 表示返回的时间单位:"s",以秒为单位;"m",以分钟为单位;"h",以小时为单位;"d",以天为单位;"w",以周为单位。
示例:
DATESUBDATE("2008-08-08", "2008-06-06","h") 等于 1512 。
16. 日期转毫秒数(DATETONUMBER)编辑
DATETONUMBER(date):返回自 1970 年 1 月 1 日 00:00:00 GMT 经过的毫秒数(相当于北京时间1970 年 1 月 1 日 08:00:00 )。
示例:
DATETONUMBER("2015-12-31 10:50:41") 等于 1451530241000。
17. DAYVALUE编辑
DAYVALUE(date):返回 1900 年至 date 日期所经历的天数。
示例:
DAYVALUE("2008/08/08") 等于 39668。
18. DATE编辑
DATE(year,month,day):返回一个表示某一特定日期的系列数。
Year:代表年,可为一到四位数。
Month:代表月份。若 1<=month<= 12 ,则函数把参数值作为月;若 month>12 ,则函数从年的一月份开始往上累加。例如:DATE(2000,25,2) 等于 2002 年 1 月 2 日的系列数。
Day:代表日。若日期小于等于某指定月的天数,则函数将此参数值作为日;若日期大于某指定月的天数,则函数从指定月份的第一天开始往上累加;若日期大于两个或多个月的总天数,则函数把减去两个月或多个月的余数加到第三或第四个月上,依此类推。如:DATE(2000,3,35) 等于 2000 年 4 月 4 日的系列数。
注:若需要处理公式中日期的一部分,如年或月等,则可用此公式。若年,月和日是函数而不是函数中的常量,则此公式最能体现其作用。
示例:
DATE(1978, 9, 19) 等于 1978-09-19;
DATE(1211, 12, 1) 等于 1211-12-01。
19. 取当前时间(NOW)编辑
NOW():获取当前时间。
示例:
如果系统时间是 2012 年 5 月 12 日 15 点 18 分 38 秒, 则 NOW() 等于 2012-05-12 15:18:38。
20. 取小时数(HOUR)编辑
HOUR(serial_number):返回某一指定时间的小时数。函数指定HOUR为 0(0:00) 到 23(23:00) 之间的一个整数。
Serial_number:包含所求小时的时间。
示例:
HOUR("11:32:40")等于 11;
HOUR("11:32:40","HH:mm:ss")等于 11。
21. YEARDELTA编辑
YEARDELTA(date, delta):返回指定日期后delta年的日期。
示例:
YEARDELTA("2008-10-10",10) 等于 2018-10-10。
注:此处 YEARDELTA 函数返回的值结果为时间类型。若使用 YEARDELTA(注册时间,1)="2017-07-28" 作为过滤条件,需要将 2017-07-28 转换为时间类型才能匹配,如 YEARDELTA(注册时间,1)=todate("2017-07-28")。
22. DAYSOFQUARTER编辑
DAYSOFQUARTER(date):返回从 1900 年 1 月后某年某季度的天数。
示例:
DAYSOFQUARTER("2009-02-01") 等于 90;
DAYSOFQUARTER("2009/05/05") 等于 91。
23. WEEK编辑
WEEK(serial_num):返回一个代表一年中的第几周的数字。
1)默认周开始于星期日时,此时系统中周的范围为星期日到星期六。
Serial_num:表示输入的日期。
注: FineBI 将日期保存为系列数,一个系列数代表一个与之匹配的日期,以方便用户对日期进行数值式计算。
在 1900 年日期系统中,FineBI 电子表格将 1900 年 1 月 1 日保存为系列数 2,将 1900 年 1 月 2 日保存为系列数 3,将 1900 年 1 月3 日保存为系列数 4……依此类推。如在 1900 年日期系统,1998 年 1 月 1 日存为系列数 35796。
示例:
WEEK("2010/1/1") 等于 52;
WEEK("2010/1/6") 等于 1;
WEEK(35796) 等于 1。
2010-01-01 是星期五,那么 2010-01-01 就不能算在 2010 年的第一个星期里面,只算在 2009 年的最后一个星期里。
2010 年的第一个星期的第一天应该是 2010-01-03,因为 2010-01-03 是 2010 年的第一个星期日。
2)当设置 周开始于星期一 时,此时系统中周的范围为星期一到星期日。
2010 年的第一个星期的第一天应该是 2010-01-04,因为 2010-01-04 是 2010 年的第一个星期一。
24. 取星期数(WEEKDAY)编辑
WEEKDAY(Serial_number):获取日期并返回星期数。返回值为介于 0 到 6 之间的某一整数,分别代表星期中的某一天(从星期日到星期六)。
Serial_number:输入的日期。
备注: FineBI 将日期保存为系列数,一个系列数代表一个与之匹配的日期,以方便用户对日期进行数值式计算。
在 1900 年日期系统中,FineBI 电子表格将 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(星期四)。
25. 取当前日期(TODAY)编辑
TODAY():是获取当前的日期。
示例:
如果系统日期是 2005 年 9 月 10 日,则 TODAY() 等于 2005-9-10。
26. TIME编辑
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。
27. 取秒数(SECOND)编辑
SECOND(serial_number):返回某一指定时间的秒数,其值是介于 0 与 59 之间的一个整数。
Serial_number:包含所求秒数的时间。
示例:
SECOND("15:36:25") 等于 25;
SECOND("15:36:25", "HH:mm:ss") 等于 25。
28.DATEINWEEK编辑
DATEINWEEK(date, number):函数返回在某一个星期当中第几天的日期。
示例:
dateInWeek("2008-08-28", 2)等于2008-08-26。
dateInWeek("2008-08-28", -1)等于2008-08-31。
如果最后一个参数为-1,返回该日期所在星期的最后一天