反馈已提交

网络繁忙

复杂表格日期和时间函数

  • 文档创建者:Fairy.Zhang
  • 历史版本:6
  • 最近更新:Tracy.Wang 于 2026-05-27
  • 1. DATE-日期构造函数

    1)概述

    语法
    DATE(year,month,day)返回代表特定日期的序列号
    参数1year代表年,可为一到四位数
    参数2month
    • 代表月份

    • 若 month<= 12,则函数把参数值作为月

    • 若 month>12,则函数从年的一月份开始往上累加

    • 例如:DATE(2000,25,2) 等于 2002 年 1 月 2 日的序列号

    参数3day
    • 代表日

    • 若日期小于等于某指定月的天数,则函数将此参数值作为日

    • 若日期大于某指定月的天数,则函数从指定月份的第一天开始往上累加

    • 若日期大于两个或多个月的总天数,则函数把减去两个月或多个月的余数加到第三或第四个月上,依此类推

    • 例如:DATE(2000,3,35)等于 2000 年 4 月 4 日的序列号

    2)注意事项

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

    若需要处理公式中日期的一部分,如年或月等,则可用此公式。若年,月和日是函数而不是函数中的常量,则此公式最能体现其作用。

    3)示例

    公式
    结果
    DATE(1978, 9, 19)1978 年 9 月 19 日
    DATE(1211, 12, 1)1211 年 12 月 1 日

    2. DATEDELTA-日期偏移计算函数

    1)概述

    语法
    DATEDELTA(date, deltadays)返回一个日期 date 后 deltadays 的日期
    参数deltaDays可以为正值,负值,零

    2)示例

    公式
    结果
    DATEDELTA("2008-08-08", -10)2008-07-29
    DATEDELTA("2008-08-08", 10)2008-08-18

    3. DATEDIF-智能日期差值函数

    1)概述

    语法DATEDIF(start_date,end_date,unit,method)返回两个指定日期之间相差的天数、整月数或整年数
    参数1start_date代表所指定时间段的起始日期
    参数2end_date代表所指定时间段的结束日期
    参数3unit指定返回结果的单位类型
    参数4method可选参数,默认返回日期差值的绝对值

    2)注意事项

    • 若 unit="Y",返回指定日期之间的整年数。

    • 若 unit="M",返回指定日期之间的整月数。

    • 若 unit="D",返回指定日期之间的天数。

    • 若 unit="MD",忽略年和月,返回指定日期之间的天数。

    • 若 unit="YM",忽略年和日,返回指定日期之间的整月数。

    • 若 unit="YD", 忽略年份,返返回指定日期之间的天数。

    • 若 method=1,返回日期差值的绝对值。

    • 若 method=-1,返回日期差值的实际正负结果。

    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")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. DATESUBDATE-日期差值计算函数

    1)概述

    语法DATESUBDATE(date1, date2, op)返回两个指定日期之间的时间差
    参数1date1代表所指定时间段的起始日期
    参数2date2代表所指定时间段的结束日期
    参数3op

    指定返回结果的单位类型,其中支持:

    • "s"或"S":以秒为单位

    • "m"或"M":以分钟为单位

    • "h"或"H":以小时为单位

    • "d"或"D":以天为单位

    • "w"或"W":以周为单位

    2)注意事项

    计算结果默认为 date1-date2 ,会考虑正负情况。

    3)示例

    公式
    结果
    DATESUBDATE("2008-08-08", "2008-06-06","h") 1512

    5. DAY-日分量提取函数

    1)概述

    语法
    DAY(serial_number)返回指定日期中的日。DAY 是介于 1 和 31 之间的一个数
    参数serial_number指定的日期,参数为空时默认为当天日期

    2)注意事项

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

    在 1900 年日期系统中,复杂表格将 1900 年 1 月 1 日保存为系列数 2,将 1900 年 1 月 2 日保存为系列数 3,将 1900 年 1 月 3 日保存为系列数 4……依此类推。如在1900 年日期系统,1998 年 1 月 1 日存为系列数 35796。

    3)示例

    公式
    结果
    DAY("2000/1/1") 1
    DAY("2006/05/05") 5
    DAY("1997/04/20")20
    DAY(35796) 1

    6. DAYS360-金融日差计算函数

    1)概述

    语法
    DAYS360(start_date,end_date,method)按照一年 360 天的算法(每个月以 30 天计,一年共计 12 个月),返回两日期间相差的天数
    参数1start_date开始日期
    参数2end_date结束日期
    参数3method

    可选参数,指定在计算中是采用欧洲方法还是美国方

    • FALSE 或忽略为美国方法 (NASD):如果起始日期是一个月的 31 号,则等于同月的 30 号。如果终止日期是一个月的 31 号,并且起始日期早于 30 号,则终止日期等于下一个月的 1 号,否则,终止日期等于本月的 30 号

    • TRUE 为欧洲方法:无论是起始日期还是终止日期为一个月的 31号,都将等于本月的 30号

    2)注意事项

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

    在 1900 年日期系统中,复杂表格将 1900 年 1 月 1 日保存为系列数 2,将 1900 年 1 月 2 日保存为系列数 3,将 1900 年 1 月 3 日保存为系列数 4……依此类推。如在1900 年日期系统,1998 年 1 月 1 日存为系列数 35796。

    3)示例

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

    7. DAYSOFMONTH-月份天数计算函数

    1)概述

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

    2)示例

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

    8. DAYSOFQUARTER-季度天数计算函数

    1)概述

    语法
    DAYSOFQUARTER(date)返回从 1900 年 1 月后某年某季度的天数
    参数date日期

    2)示例

    公式
    结果
    DAYSOFQUARTER("2009-02-01") 90

    DAYSOFQUARTER("2009/05/05")

    91

    9. DAYSOFYEAR-年度天数计算函数

    1)概述

    语法
    DAYSOFYEAR(year)返回 1900 年以后某年包含的天数
    参数year年份

    2)示例

    公式
    结果
    DAYSOFYEAR(2008)366

    10. DAYVALUE-日期序列值转换函数

    1)概述

    语法
    DAYVALUE(date)

    返回 1900 年至 date 日期所经历的天数

    一个日期匹配一个系列数,方便用户对日期进行数值式计算

    参数

    date

    需要转换的日期,支持日期格式、代表日期的文本格式(如 "2000/2/28")及数字格式(整数,如 1000001)

    2)注意事项

    • 如果 date 参数不合法,则返回 1900 年 1 月 1 日至当天时间所经历的天数。例如:若今天为 2020/09/01,DAYVALUE("2008/02/") 等于 44074,DAYVALUE("0.877766")等于 44074

    • 如果 date 是数字类型:当 date 大于 1000000 时,会被当作是 unix 时间。unix 时间是指从 1970 年 1 月 1 日 开始所经过的秒数,不考虑闰秒;当 date 小于或等于 1000000 时,会被当作是距 1900 年 1 月 1 日的天数。

    3)示例

    公式
    结果
    DAYVALUE("2000/1/1")36525
    DAYVALUE( 1000001) 25568

    11. HOUR-小时提取函数

    1)概述

    语法
    HOUR(serial_number)

    返回某一指定时间的小时

    函数指定 HOUR 为 0(0:00)到 23(23:00)之间的一个整数

    参数Serial_number表示某个指定时间

    2)示例

    公式结果
    HOUR("11:32:40") 11

    12. MINUTE-分钟提取函数

    1)概述

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

    2)示例

    公式结果
    MINUTE("15:36:25")36

    13. MONTH-月份提取函数

    1)概述

    语法
    MONTH(serial_number)返回日期中的月,月是介于 1 和 12 之间的一个数
    参数serial_number含有所求的月的日期,参数为空时默认为当天日期

    2)注意事项

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

    在 1900 年日期系统中,复杂表格将 1900 年 1 月 1 日保存为系列数 2,将 1900 年 1 月 2 日保存为系列数 3,将 1900 年 1 月 3 日保存为系列数 4……依此类推。如在1900 年日期系统,1998 年 1 月 1 日存为系列数 35796。

    3)示例

    公式
    结果
    MONTH("2004/5/5")5
    MONTH(35796)1

    14. MONTHDELTA-月份偏移函数

    1)概述

    语法
    MONTHDELTA(date,delta)返回指定日期 date 后 delta 个月的日期
    参数1date指定日期
    参数2delta整数,月份增减量

    2)示例

    公式
    结果
    MONTHDELTA("2008-08-08", 4)2008-12-08
    MONTHDELTA("2008-08-08", -4)2008-04-08

    15. NOW-当前时间函数

    1)概述

    语法
    NOW()获取当前时间

    2)示例

    公式
    结果

    NOW()

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

    2017-06-27 14:58:06

    16. SECOND-秒数提取函数

    1)概述

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

    2)示例

    公式
    结果
    SECOND("15:36:25") 25
    SECOND("15:36:25", "HH:mm:ss")25

    17. TIME-时间合成函数

    1)概述

    语法
    TIME(hour,minute,second)

    返回指定的日期和时间,日期为当天的日期

    时间为介于 0:00:00 与23:59:59 之间的时间,可返回 0 到 0.99999999 之间的对应数值

    参数1hour介于 0 到 23 之间的数
    参数2minute介于 0 到 59 之间的数
    参数3second介于 0 到 59 之间的数

    2)示例

    公式
    结果

    TIME(14,40,0) 

    若当前时间为 2022-06-17

     2022-06-17 14:40:00

    18. TODATE-日期标准化函数

    1)概述

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

    2)注意事项

    • 格式中月份必须大写 MM,年份小写:yy(如果是用来解析形如“20081230”格式,则可写为yyyyMMdd,其余不可使用 yyyy 形式),天份小写:dd

    • 第二个参数必须与第一个日期格式一致。例如,第一个参数为"2007/10/15"格式,那么第二个参数格式需写为 yyyy/MM/dd 格式,即 TODATE("2007/10/15","yyyy/MM/dd"),第一个参数为"2007-10-15"格式,那么第二个参数格式需写为 yyyy-MM-dd 格式,即 TODATE("2007-10-15","yyyy-MM-dd"),因此 todate 与 today 同时使用,第二个参数必须为 yyyy-MM-dd 格式,即TODATE(TODAY(),"yyyy-MM-dd")

    3)示例

    参数有 5 种形式,如下表所示:

    参数公式结果
    参数是日期类型,直接将这个参数返回TODATE(DATE(2007,12,12))2007-12-12

    参数是文本类型,是以从 1970 年 1 月 1 日 0 时 0 分 0 秒开始的毫秒数,返回对应的年月日时分秒。

    备注:如果 date 是数字类型,当 date 大于 1000000 时,会被当作是 unix 时间;当 date 小于或等于 1000000 时,会被当作是距 1900 年 1 月 1 日的天数。

    TODATE(1023542354746)2002-06-08 21:19:14
    参数是日期格式的文本,返回这个文本对应的日期

    TODATE("2007/10/15")


    TODATE("2007-6-8")

    2007-10-15

    2007-06-08

    有两个参数

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

    注:"yyyyMMdd" 是用来解析形如“20081230”之类的日期格式的。其余不可使用 yyyy 形式,MM 需大写

    TODATE("1/15/07","MM/dd/yy")

    TODATE("20110830","yyyyMMdd") 

    2007-01-15

    2011-08-30

    有三个参数

    第一个参数是一个日期格式的文本,第二个参数是用来解析日期的格式,第三个参数为解析日期的语言,如:zh(中文),en(英文)

    其中第三个参数为可选参数,默认使用服务器的语言作为解析日期的语言。使用“zh(中文)”才能够正常解析“星期一”这个字符串。

    注:如果 EEE 和 MM/dd/yy 不一致, 以 MM/dd/yy 为主。 

    TODATE("星期三1/15/07","EEEMM/dd/yy","zh")

    实际是星期一 而不是星期三

    2007-01-15

    19. TODAY-当前日期函数

    1)概述

    语法
    TODAY()获取当前的日期

    2)示例

    公式结果

    TODAY()

    当前日期是 2011-06-20

    2011-06-20

    20. WEEKDAY-星期提取函数

    1)概述

    语法
    WEEKDAY(serial_number)

    获取日期并返回星期

    返回值为介于 0 到 6 之间的某一整数,分别代表星期中的某一天(从星期日到星期六)

    参数serial_number输入的日期

    2)注意事项

    • 复杂表格中将日期保存为系列数,一个系列数代表一个与之匹配的日期,以方便用户对日期进行数值式计算。在 1900 年日期系统中,复杂表格将 1900 年 1 月 1 日保存为系列数 2,将 1900 年 1 月 2 日保存为系列数 3,将 1900 年 1 月 3 日保存为系列数 4……依此类推。如在1900 年日期系统,1998 年 1 月 1 日存为系列数 35796。

    • 若公式引用单元格,单元格内容为空或单元格内容为非日期格式时,默认返回当天的星期数。但不建议直接使用公式 WEEKDAY(),可能存在风险。

    3)示例

    公式
    结果
    WEEKDAY("2005/9/10")6
    WEEKDAY("2005/9/11")0
    WEEKDAY(35796)4

    21. YEAR-年份提取函数

    1)概述

    语法
    YEAR(serial_number)

    返回日期中的年

    返回值是介于 1900 和 9999 之间的一个数

    参数serial_number含有所求的年的日期,参数为空时默认为当天日期

    2)注意事项

    复杂表格中将日期保存为系列数,一个系列数代表一个与之匹配的日期,以方便用户对日期进行数值式计算。在 1900 年日期系统中,复杂表格将 1900 年 1 月 1 日保存为系列数 2,将 1900 年 1 月 2 日保存为系列数 3,将 1900 年 1 月 3 日保存为系列数 4……依此类推。如在1900 年日期系统,1998 年 1 月 1 日存为系列数 35796。

    3)示例

    公式结果
    YEAR("2000/1/1") 2000
    YEAR("2006/05/05") 2006
    YEAR("1997/04/20")1997
    YEAR(35796) 1998

    22. YEARDELTA-年份偏移计算函数

    1)概述

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

    date

    指定日期

    参数2delta

    年份增减量

    可以是正值、负值、零。正值表示后推,负值表示前推

    2)示例

    公式
    结果
    YEARDELTA("2008-10-10",10)2018-10-10


    附件列表


    主题: 制作复杂表格
    • 有帮助
    • 没帮助
    • 只是浏览

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持