日期和时间函数

编辑
  • 文档创建者:印然
  • 浏览次数:34809次
  • 编辑次数:15次
  • 最近更新:Kevin-s 于 2019-06-17
  • 凡函数中以日期作为参数因子的,其中日期的形式都必须是 yyyy/mm/dd。而且必须用英文环境下双引号(" ")引用。

    1. 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 年 9 月 19 日。

    DATE(1211, 12, 1)等于 1211 年 12 月 1 日。

    其中月和日为 1 到 9 之间的数字时,不需要在前面加上 0 而直接写数字如 DATE(2011, 2, 1)即可。

    2. DATEDELTA

    DATEDELTA(date, deltadays):返回一个日期——date 后 deltadays 的日期。deltaDays 可以为正值,负值,零。

    示例:

    DATEDELTA("2008-08-08", -10)等于 2008-07-29。

    DATEDELTA("2008-08-08", 10)等于 2008-08-18。

    3. DATEDIF

    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 天。

    4. DATEINMONTH

    DATEINMONTH(date, number):函数返回在某一个月当中第几天的日期。

    示例:

    DATEINMONTH("2008-08-08", 20)等于 2008-08-20。

    5. DATEINQUARTER

    DATEINQUARTER(date, number):函数返回在某一个季度当中第几天的日期。

    示例:

    DATEINQUARTER("2009-05-05", 20)等于 2009-04-20。

    6. DATEINWEEK

    DATEINWEEK(date, number):函数返回在某一个星期当中第几天的日期。

    示例:

    dateInWeek("2008-08-28", 2)等于 2008-08-26。

    7. DATEINYEAR

    DATEINYEAR(date, number):函数返回在某一年当中第几天的日期。

    示例:

    dateInYEAR("2008/12/03", 300)等于 2008-10-26。

    8. DATESUBDATE

    DATESUBDATE(date1, date2, op):返回两个日期之间的时间差。

    op表示返回的时间单位:

    "s",以秒为单位。

    "m",以分钟为单位。

    "h",以小时为单位。

    "d",以天为单位。

    "w",以周为单位。

    示例:

    DATESUBDATE("2008-08-08", "2008-06-06","h")等于 1512。

    9. DATETONUMBER

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

    示例:

    DATETONUMBER("2008-08-08")等于 1218124800000。

    10. DAY

    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。

    11. 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号。

    注: 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

    12. DAYSOFMONTH

    DAYSOFMONTH(date):返回从 1900 年 1 月后某年某月包含的天数。

    示例:

    DAYSOFMONTH("1900-02-01")等于 28

    DAYSOFMONTH("2008/04/04")等于 30

    13. DAYSOFQUARTER

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

    示例:

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

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

    14. DAYSOFYEAR

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

    示例:

    DAYSOFYEAR(2008)等于 366

    15. DAYVALUE

    DAYVALUE(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。

    示例:

    DAYVALUE("2000/1/1")等于 36526。

    16. HOUR

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

    Serial_number:包含所求小时的时间。

    示例:

    HOUR("11:32:40")等于 11。

    17. MINUTE

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

    Serial_number:包含所求分钟数的时间。

    示例:

    MINUTE("15:36:25")等于 36。

    18. MONTH

    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。

    19. MONTHDELTA

    MONTHDELTA(date,delta):返回指定日期 date 后 delta 个月的日期。

    示例:

    MONTHDELTA("2008-08-08", 4)等于 2008-12-08。

    20. NOW

    NOW():获取当前时间。

    示例:

    如果系统时间是 2017-06-27 14:58:06, 则:

    NOW()等于 2017-06-27 14:58:06。

    21. SECOND

    SECOND(s erial_number):返回某一指定时间的秒数,其值是介于 0 与 59 之间的一个整数。

    Serial_number:包含所求秒数的时间。

    示例:

    SECOND("15:36:25")等于 25。

    SECOND("15:36:25", "HH:mm:ss")等于 25。

    22. TIME

    TIME(hour,minute,second):返回代表指定时间的小数。介于 0:00:00(12:00:00 A.M.)与 23:59:59(11:59:59 P.M.)之间的时间可返回 0 到 0.99999999 之间的对应数值。

    TIME(19,43,24)等于 7:43 PM

    Hour:介于 0 到 23 之间的数。

    Minute:介于 0 到 59 之间的数。

    Second:介于 0 到 59 之间的数。

    示例:

    TIME(14,40,0)等于 2:40 PM。

    23. TODATE

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

    它有三种参数的形式:

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

    示例:

    TODATE(DATE(2007,12,12))返回 2007-12-12 组成的日期。

    2)参数是以从1970 年 1 月 1 日 0 时 0 分0 秒开始的毫秒数,返回对应的时间。

    示例:

    TODATE("1023542354746")返回 2002-6-8 21:19:14。

    3)参数是日期格式的文本,那么返回这个文本对应的日期。

    示例:

    TODATE("2007/10/15")返回 2007-10-15 组成的日期

    TODATE("2007-6-8")返回 2007-6-8 组成的日期。

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

    示例:

    TODATE("1/15/07","MM/dd/yy")返回 2007-01-15 组成的日期.

    注:此处的格式中月份必须大写 MM,年份小写:yy(不可以为yyyy)。天份小写:dd

    24. TODAY

    TODAY():是获取当前的日期。

    示例:

    如果系统日期是 2011-06-20,则:

    TODAY()等于 2011-06-20。

    25. WEEKDAY

    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(星期四)。

    26. WEEK

    WEEK(serial_num):返回一个代表一年中的第几周的数字。

    1)默认周开始于星期日时,此时系统中周的范围为星期日到星期六。

    Serial_num:表示输入的日期。

    注:FineReport 将日期保存为系列数,一个系列数代表一个与之匹配的日期,以方便用户对日期进行数值式计算。

    在 1900 年日期系统中,FineReport 电子表格将 1900 年 1 月 1 日保存为系列数2,将 1900 年 1 月 2 日保存为系列数 3,将 1900 年 1 月 3 日保存为系列数 4……依此类推。

    如在 1900 年日期系统,1998 年 1 月 1 日存为系列数 35796。

    示例:

    WEEK("2005/1/1")等于 52。

    WEEK("2005/1/6")等于 1。

    WEEK(35796)等于 52。

    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 年的第一个星期一。

    27. 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)当设置 周开始于星期一 时,此时系统中周的范围为星期一到星期日。

    28. YEAR

    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。

    29. YEARDELTA

    YEARDELTA(date, delta):返回指定日期后delta年的日期。

    示例:

    YEARDELTA("2008-10-10",10)等于 2018-10-10。

    30. LUNAR

    LUNAR(year,day,month): 返回当前日期对应的农历时间。year,month,day:分别对应年月日。

    示例:

    如果需要查询 2011 年 7 月 21 日对应的农历时间,则:

    LUNAR(2011,7,21)结果将显示为:辛卯年六月廿一。

    LUNAR(2001,7,21)结果显示:辛巳年六月初一 。

    注:本公式支持的时间段为 1900-2049 年。


    附件列表


    主题: 报表应用
    标签: 暂无标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]