历史版本27 :日期函数概述 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

          FineBI版本        JAR 包功能变动
5.1  --
5.1.72020-11-04函数释义优化&明确函数参数合法性

1.2 使用范围


使用位置
自助数据集新增列过滤
仪表板
添加计算字段

注:函数中以日期作为参数因子的,其中日期的形式都必须是 yyyy/mm/dd 或 yyyy-MM-dd 。而且必须用英文环境下双引号(" ")引用。

2. MONTH-取日期中的月编辑

2.1 抽取数据

1)概述

语法
MONTH:(serial_number,格式)返回日期中的月。月是介于1和12之间的一个数。
参数1serial_number

含有所求的月的日期.除了支持文本、日期类型,还支持1900年标准的系列数,例如输入35796为1998-01-01。 

参数2格式例如 yyyy-MM-dd

2)注意事项

允许MONTH(serial_number,格式)内参数为空,即MONTH(),当参数为空时,取当前系统的服务器时间对应日期的月数。

第二个参数可缺省

3)示例

公式结果
备注
MONTH()10对应系统服务器时间为2020-10-23 15:36:25。
MONTH("2000/1/1")1
MONTH(35796)1
MONTH("1997-04-20","yyyy-MM-dd")4

2.2 实时数据

1)概述

语法
MONTH:(serial_number)返回日期中的月。月是介于1和12之间的一个数。
参数serial_number

含有所求的月的日期,只支持文本、日期类型。

2)注意事项

允许MONTH(serial_number)内参数为空,即MONTH(),当参数为空时,取当前系统的服务器时间对应日期的月数。

3)示例

公式结果
备注
MONTH()10对应系统服务器时间为2020-10-23 15:36:25。
MONTH("2000/1/1")1

3. 取一年中的天数(DAYSOFYEAR)编辑

DAYSOFYEAR(year):返回某年包含的天数。

示例:

DAYSOFYEAR (2008) 等于 366 ,等价于:DAYSOFYEAR("2008-01-01") 。

4. YEAR-取日期中的年编辑

4.1 抽取数据

1)概述

语法
YEAR:(serial_number,格式)返回日期中的年。year是介于1900和9999之间的一个数。
参数serial_number

支持1900年的系列数,例如35796为1998-01-01。 

2)注意事项

允许YEAR(serial_number,格式)内参数为空,即YEAR(),当参数为空时,取当前系统的服务器时间对应日期的年份数。

3)示例

公式结果
备注
YEAR()2020对应系统服务器时间为2020-10-23 15:36:25。
YEAR("2000/1/1")2000
YEAR(35796)1998
YEAR("1997-04-20","yyyy-MM-dd")1997

4.2 实时数据

1)概述

语法
YEAR:(serial_number)返回日期中的年。year是介于1900和9999之间的一个数。
参数serial_number

表示输入的日期。只支持文本、日期类型。

2)注意事项

允许YEAR(serial_number)内参数为空,即YEAR(),当参数为空时,取当前系统的服务器时间对应日期的年份数。

3)示例

公式结果
备注
YEAR()2020对应系统服务器时间为2020-10-23 15:36:25。
YEAR("2000/1/1")2000

5. MONTHDELTA-指定日期 date 后 delta 个月的日期编辑

1)概述

语法
MONTHDELTA(date,delta)返回指定日期date后delta个月的日期。
参数delta

对于抽取数据 date除了支持文本、日期类型,还支持1900年系列数,例如35796为1998-01-01。

注:实时数据中 date 只支持文本、日期类型。 

2)注意事项

支持两个参数,超过则不合法

3)示例

公式结果
备注
MONTHDELTA("2008-08-08",4)2008-12-08
MONTHDELTA(35796,4)1998-05-01实时数据不支持该写法

6. DATEDIF-两个指定日期间的天数、月数或年数编辑

1)概述

语法
DATEDIF(start_date,end_date,unit)返回两个指定日期间的天数、月数或年数。
参数1start_date

代表所指定时间段的初始日期 

可以为1900年系列数,例如35796为1998-01-01。

注:实时数据只支持文本、日期类型。

参数2end_date

代表所指定时间段的终止日期

可以为1900年系列数,例如35796为1998-01-01。

注:实时数据只支持文本、日期类型。

参数3unit函数返回信息的类型。 若unit=“Y/y”,则返回年差数; 若unit=“M/m”,则返回月差数;若unit=“D/d”,则返回日差数; 若unit=“MD/md”,则忽略年和月,返回日差数; 若unit=“YM/ym”,则忽略年和日,返回月差数;若unit=“YD/yd”,则忽略年,返回日差数。

2)注意事项

支持三个参数

3)示例

公式结果
备注
DATEDIF("2001/2/28","2004/3/20","Y")3即在2001年2月28日与2004年3月20日之间有3个整年。
DATEDIF("2001/2/28","2004/3/20","M")37即在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天。
DATEDIF(35796,35800,"MD")4即忽略年月后,1998年1月1日与1998年1月5日相差4天。

7. DATEDELTA-返回一个日期后的具体日期编辑

7.1 抽取数据

1)概述

语法
DATEDELTA(date,deltadays)返回一个日期date后deltadays的日期。
参数1date

date除了支持文本、日期类型,还支持1900年系列数,例如35796为1998-01-01。 

参数2deltaDays可以为正值,负值,零

2)注意事项

支持两个参数

3)示例

公式结果
备注
DATEDELTA("2008-08-08",-10)2008-07-29
DATEDELTA("2008-08-08",10)2008-08-18
DATEDELTA(35796,10)1998-01-11

7.2 实时数据

1)概述

语法
DATEDELTA(date,deltadays)返回一个日期date后deltadays的日期。
参数1date

只支持文本、日期类型

参数2deltadays可以为正值,负值,零

2)注意事项

支持两个参数

3)示例

公式结果
备注
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编辑

1)概述

语法
DAYS360(start_date,end_date,method)按照一年360天的算法(每个月以30天计,一年共计12个月),返回两日期间相差的天数,这在会计计算中将会用到。如果财务系统是基于一年12个月,每月30天,可用此函数帮助计算支付款项。
参数1start_date

start_date和end_date:是用于计算期间天数的起止日期。 

参数2end_date
参数3method它指定了在计算中是采用欧洲方法还是美国方法。 Method定义:FALSE或空为美国方法(NASD)。TRUE为欧洲方法。即无论是起始日期还是终止日期为一个月的31号,都将等于本月的30号。

2)注意事项

  • 不支持实时数据

  • 支持三个参数,第三个可缺省

3)示例

公式结果
备注
DAYS360("1998/1/30","1998/2/1")1

10. TODATE-将各种日期形式的参数转换为日期类型编辑

1)概述

语法
TODATE()可以将各种日期形式的参数转换为日期类型

2)注意事项

可使用一个、两个或者三个参数

3)示例

公式结果
备注
TODATE(DATE(2007,12,12))2007-12-12 00:00:00

参数是一个日期型的参数,那么直接将这个参数返回

2007年12月12日组成的日期。

TODATE(1023542354746)2002-06-08 21:19:14参数是以从1970年1月1日0时0分0秒开始的毫秒数,返回对应的时间。
TODATE("2007/10/15")2007-10-15 00:00:00参数是日期格式的文本,那么返回这个文本对应的日期。
TODATE("1/15/07","MM/dd/yy")2007-10-15 00:00:00

有两个参数,第一个参数是一个日期格式的文本,第二个参数是用来解析日期的格式。

返回07年1月15日组成的日期。(MM必须是大写)

特别的,"yyyyMMdd"是用来解析形如“20081230”之类的日期格式的。比如TODATE("20110830","yyyyMMdd")返回2011年08月30日组成的日期

TODATE("星期一1/15/07","EEEMM/dd/yy","zh")2007-01-15 00:00:00

返回07年1月15日组成的日期,使用“zh(中文)”才能够正常解析“星期一”这个字符串。

有三个参数,第一个参数是一个日期格式的文本,第二个参数是用来解析日期的格式,第三个参数为解析日期的语言,如:zh(中文),en(英文)。如果EEE 和 MM/dd/yy 不一致, 以 MM/dd/yy 为主。


11. DAY-返回日期中的日编辑

1)概述

语法
DAY(serial_number,格式)返回日期中的日。DAY是介于1和31之间的一个数。
参数serial_number

含有所求的年的日期。也可以是系列数,如在1900年日期系统,1998年1月1日存为系列数35796。

注:实时数据serial_number只支持文本、日期类型。

允许DAY(serial_number,格式)内参数为空,即DAY(),当参数为空时,取当前系统的服务器时间对应日期中的日。

2)注意事项

允许参数为空 

支持两个参数,第二个可缺省

3)示例

公式结果
备注
DAY()23对应系统服务器时间为2020-10-23 15:36:25 。
DAY("2000/1/1")1
DAY(35796)1实时数据不支持
DAY("1997-04-20","yyyy-MM-dd")20

12. LUNAR-取农历时间编辑

1)概述

语法
LUNAR(year, month, day)返回当前日期对应的农历时间
参数year,month,day

分别对应年月日

2)注意事项

  • 不支持实时数据

  • 支持三个参数,超过则不合法

3)示例

公式结果
备注
LUNAR(2011,7,21)辛卯年六月廿一
LUNAR(2001,7,21)辛巳年六月初一

13. MINUTE-取分钟数编辑

13.1 抽取数据

1)概述

语法
MINUTE(serial_number,格式)返回某一指定时间的分钟数,其值是介于0与59之间的一个整数
参数1serial_number

包含所求分钟数的时间 

参数2格式例如 HH:mm:ss

2)注意事项

允许MINUTE(serial_number,格式)内参数为空,即MINUTE(),当参数为空时,取当前系统的服务器时间对应的分钟数。

第二个参数可缺省

3)示例

公式结果
备注
MINUTE()36对应系统服务器时间为2020-10-23 15:36:25
MINUTE("15:36:25")36
MINUTE("15:36:25","HH:mm:ss")36

13.2 实时数据

1)概述

语法
MINUTE(serial_number)返回某一指定时间的分钟数,其值是介于0与59之间的一个整数
参数serial_number

包含所求分钟数的时间 

2)注意事项

允许MINUTE(serial_number)内参数为空,即MINUTE(),当参数为空时,取当前系统的服务器时间对应的分钟数。

第二个参数可缺省

3)示例

公式结果
备注
MINUTE()36对应系统服务器时间为2020-10-23 15:36:25
MINUTE("15:36:25")36

14. DAYSOFMONTH-从1900年1月后某年某月包含的天数编辑

14.1 抽取数据

1)概述

语法
DAYSOFMONTH(date)回从1900年1月后某年某月包含的天数。
参数date

date除了支持文本、日期类型,还可以是系列数,如在1900年日期系统,1998年1月1日存为系列数35796。 

2)注意事项

支持一个参数,超过则不合法

3)示例

公式结果
备注
DAYSOFMONTH("1900-02-01")28
DAYSOFMONTH("2008/04/04")30
DAYSOFMONTH(35796)31

14.2 实时数据

1)概述

语法
DAYSOFMONTH(date)回从1900年1月后某年某月包含的天数。
参数date

datedate只支持文本、日期类型


2)注意事项

支持一个参数,超过则不合法

3)示例

公式结果
备注
DAYSOFMONTH("1900-02-01")28
DAYSOFMONTH("2008/04/04")30

15. DATESUBDATE-两个日期之间的时间差编辑

1)概述

语法
DATESUBDATE(date1,date2,op)返回两个日期之间的时间差。
参数1date1

date1,date2表示要输入的两个日期,当date1早于date2时,是负值;date1晚于date2,是正值,若date1/2为数值,按照1900年的系列数逻辑处理,例如35796为1998-01-01。 

注:实时数据只支持文本、日期类型。

参数2date2
参数3op表示返回的时间单位:"s/S",以秒为单位。"m/M",以分钟为单位。"h/H",以小时为单位。"d/D",以天为单位。"w/W",以周为单位。

2)注意事项

支持三个参数,超过则不合法

3)示例

公式结果
备注
DATESUBDATE("2008-08-08","2008-06-06","h")1512
DATESUBDATE("2008-06-06","2008-08-08","H")-1512
DATESUBDATE(35796,35800)4实时数据不支持

16. DATETONUMBER-日期转毫秒数编辑

1)概述

语法
DATETONUMBER(date)返回自1970年1月1日00:00:00GMT经过的毫秒数。
参数date

date可以为文本、日期,也可以为数值,按照1900年的系列数逻辑处理,例如35796为1998-01-01。 

注:实时数据不支持文本、日期类型。

2)注意事项

支持一个参数,超过则不合法

3)示例

公式结果
备注
DATETONUMBER("2008-08-08")1218124800000
DATETONUMBER(35796)883,612,800,000实时数据不支持

17. DAYVALUE-1900 年至 date 日期所经历的天数编辑

1)概述

语法
DAYVALUE(date)返回 1900 年至 date 日期所经历的天数。
参数date

date 抽取数据除了支持文本、日期类型,还可以是系列数,如在1900年日期系统,1998年1月1日存为系列数35796。

注:实时数据只支持文本、日期类型。

2)注意事项

支持一个参数,超过则不合法

3)示例

公式结果
备注
DAYVALUE("2008/08/08")39668

18. DATE-返回特定日期的系列数编辑

1)概述

语法
DATE(year,month,day)返回一个表示某一特定日期。
参数1year

代表年,可为一到四位数。 

参数2month代表月份。若month<12,则函数把参数值作为月。若month>12,则函数从年的一月份开始往上累加。
参数3day代表日期。进位逻辑同month。

2)注意事项

支持三个参数

3)示例

公式结果
备注
DATE(1978,9,19)1978-09-19
DATE(2000,13,05)2001-01-05
DATE(2000,3,35)2000-04-04

19. NOW-取当前时间编辑

NOW():获取当前时间。

注:没有参数。

示例:

如果系统时间是 2012 年 5 月 12 日 15 点 18 分 38 秒, 则 NOW() 等于 2012-05-12 15:18:38。

20. HOUR-取小时数编辑

20.1 抽取数据

1)概述

语法
HOUR(serial_number,格式)返回某一指定时间的小时数。函数指定HOUR为0(0:00)到23(23:00)之间的一个整数。
参数serial_number

包含所求小时的时间

2)注意事项

允许HOUR(serial_number,格式)内参数为空,即HOUR(),当参数为空时,取当前系统的服务器时间对应的小时数。

3)示例

公式结果
备注
HOUR("11:32:40")11
HOUR()15对应系统服务器时间为2020-10-23 15:36:2
HOUR("11:32:40","HH:mm:ss")11

20.2 实时数据

1)概述

语法
HOUR(serial_number)返回某一指定时间的小时数。函数指定HOUR为0(0:00)到23(23:00)之间的一个整数。
参数serial_number

包含所求小时的时间

2)注意事项

允许 HOUR(serial_number)内参数为空,即 HOUR(),当参数为空时,取当前系统的服务器时间对应的小时数。

3)示例

公式结果
备注
HOUR("11:32:40")11
HOUR()15对应系统服务器时间为2020-10-23 15:36:2

21. YEARDELTA编辑

1)概述

语法
YEARDELTA(date, delta)返回指定日期后delta年的日期。
参数date

表示输入的日期。

  • 抽取数据中date除了支持文本、日期类型,还支持1900年的系列数,例如35796为1998-01-01 

  • 实时数据中只支持文本、日期类型。

2)注意事项

支持两个参数

3)示例

公式结果
备注
YEARDELTA("2008-10-10",10)2018-10-10
YEARDELTA(35796,10)2008-01-01实时数据不支持该写法

22. DAYSOFQUARTER编辑

DAYSOFQUARTER(date):返回从 1900 年 1 月后某年某季度的天数。

注1:只支持一个参数。

注2:实时数据下 date 参数只支持文本、日期类型。

示例:

DAYSOFQUARTER("2009-02-01") 等于 90;

DAYSOFQUARTER("2009/05/05") 等于 91。

23. WEEK编辑

23.1 抽取数据

1)概述

语法
WEEK(serial_number,"F1"/"F7")返回一个代表一年中的第几周的数字
参数1serial_number

表示输入的日期。也可以是系列数,如在1900年日期系统,1998年1月1日存为系列数35796 

参数2"F1"/"F7"可以在决策平台中设置以周天还是周一为一周的开始。F1/F7如果不输入默认值为F7

2)注意事项

允许 WEEK(serial_number,"F1"/"F7")内参数为空,即WEEK(),当参数为空时,取当前系统的服务器时间对应的所属一年中第几周的数字。

3)示例

公式结果
备注
WEEK()52对应系统服务器时间为2010-1-1 15:36:25。
WEEK("2010/1/1")52
WEEK("2010/1/1","F1")1
WEEK("2010/1/6")1
WEEK(35796)52

23.2 实时数据

1)概述

语法
WEEK(serial_number)返回一个代表一年中的第几周的数字
参数serial_number

表示输入的日期。

注:只支持文本、日期类型

2)注意事项

允许 WEEK(serial_number)内参数为空,即WEEK(),当参数为空时,取当前系统的服务器时间对应的所属一年中第几周的数字。

3)示例

公式结果
备注
WEEK()52对应系统服务器时间为2010-1-1 15:36:25。
WEEK("2010/1/1")52
WEEK("2010/1/6")1

24. WEEKDAY-获取对应日期星期数编辑

1)概述

语法
WEEKDAY(serial_number)获取日期并返回星期数。返回值为介于0到6之间的某一整数,分别代表星期中的某一天(从星期日到星期六)。
参数serial_number

表示输入的日期

抽取数据中:除文本、日期类型,还支持1900年的系列数,例如35796为1998-01-01

实时数据中:只支持文本、日期类型

2)注意事项

支持一个参数,超过则不合法

3)示例

公式结果
备注
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-返回某一指定时间的秒数编辑

27.1 抽取数据

1)概述

语法
SECOND(serial_number,格式)返回某一指定时间的秒数,其值是介于0与59之间的一个整数。
参数1serial_number

包含所求秒数的时间。 

参数2格式例如:HH:mm:ss

2)注意事项

允许SECOND(serial_number,格式)内参数为空,即SECOND(),当参数为空时,取当前系统的服务器时间对应的秒数。

第二个参数可缺省

3)示例

公式结果
备注
SECOND()25
SECOND("15:36:25")25

27.2 实时数据

1)概述

语法
SECOND(serial_number)返回某一指定时间的秒数,其值是介于0与59之间的一个整数。
参数serial_number

包含所求秒数的时间。 

2)注意事项

允许SECOND(serial_number)内参数为空,即SECOND(),当参数为空时,取当前系统的服务器时间对应的秒数。

3)示例

公式结果
备注
SECOND()25
SECOND("15:36:25")25