日期函数

日期函数简介

日期时间字段 的返回值为时间戳(timestamp),单位是毫秒;本文中的日期函数的参数均可直接使用日期字段。如,YEAR(日期时间字段)。

下面介绍关于日期函数的两个基本概念:

时间戳(timestamp):时间戳是计算机记录时间的一种格式。通常是一个字符序列,唯一地标识某一刻的时间。在简道云表单中,「日期时间」字段便是由这样的序列来存储的。

日期对象:可以理解为年月日时分秒;日期对象的格式为 Sat Aug 01 2015 00:00:00 GMT+0800,即北京时间 2015 年 8 月 1 日 00:00:00,日期对象可以进行各种运算,比如日期加减法等等。

DATE

DATE 函数可用于将时间戳转换为日期对象。

函数用法:

DATE(timestamp)

通过以下公式可将年月日(时分秒)转换为日期对象:

DATE(year,month,day)

DATE(year,month,day,hour,minute,second)

其中各参数的含义如下:

  • year: 必需,年份;
  • month: 必需,月份;
  • day: 必需,天数;
  • hour: 非必需,小时;
  • minute: 非必需,分钟;
  • second: 非必需,秒。

函数示例:如 2023 年 1 月 1 日的日期对象可以用如下公式表示:

  • DATE(日期时间)
  • DATE(2023,1,1)
  • DATE(2023,1,1,0,0,0)

这三个公式都表示“Sun Jan 01 2023 00:00:00 GMT+0800”。点击体验效果

DAY

DAY 函数可用于返回日期中的天数, 值是介于 1 到 31 之间的整数。

函数用法:

DAY(timestamp)

函数示例:如计算签到日期中对应的天数,可设置公式为DAY(签到日期),即 2023-01-20 对应的天数为 20。点击体验效果

DAYS

DAYS 函数可计算两个日期之间的天数。

函数用法:

DAYS(end_timestampstart_timestamp)

其中各参数的含义如下:

  • end_timestamp: 必需,结束日期;
  • start_timestamp: 必需,起始日期。

函数示例:如考勤请假场景中,手动输入请假开始、结束日期,设置公式为DAYS(结束日期,开始日期),即可计算出请假天数。点击体验效果

DAYS360

DAYS360 函数可按照一年 360 天的算法(每个月 30 天,一年 12 个月),返回两个日期间相差的天数。

函数用法:

DAYS360(end_timestampstart_timestampmethod)

其中各参数的含义如下:

  • end_timestamp: 必需,结束日期;
  • start_timestamp: 必需,起始日期;
  • method: 可选,用于指定在计算中采用美国方法或欧洲方法,具体规则如下:

方法

定义

false 或不填

美国 (NASD) 方法。 如果起始日期是一个月的最后一天,则等于同月的 30 号。 如果终止日期是一个月的最后一天,并且起始日期早于 30 号,则终止日期等于下一个月的 1 号,否则,终止日期等于本月的 30 号。

true

欧洲方法。 如果起始日期和终止日期为某月的 31 号,则等于当月的 30 号。

函数示例:在会计计算中,财会系统一般按照一年 12 个月,每月 30 天计算,可使用 DAYS360 函数计算支付款项等。点击体验效果

DATEDIF

DATEDIF 函数可用于计算两个时间的差值。

函数用法:

DATEDIF(start_timestamp, end_timestamp, [unit])

其中各参数的含义如下:

  • start_timestamp:必需, 开始时间;
  • end_timestamp:必需,结束时间;
  • Unit:可选,默认为 “d”,可设置的参数如下:
    • “y”:年数
    • “M”:月数
    • “d”:天数
    • “h”:小时数
    • “m”:分钟数
    • “s”:秒数

注:如结束日期小于开始日期,则计算不出结果。

函数示例:通过 DATEDIF 函数计算时间差的年数、月数、天数等,可应用于计算项目的消耗天数、活动的举办天数等。点击体验效果

注:详细的 DATEDIF 函数使用案例可参考文档:如何计算两个日期的时间差

DATEDELTA

DATEDELTA 函数可以在指定日期的基础上增加/减少天数。

函数用法:

DATEDELTA(timestampdeltadays)

其中各参数的含义如下:

  • timestamp: 必需,初始日期;
  • deltadays:必需,需要加减的天数,正数为增加,负数为减少。

函数示例:如生产场景中,录入生产日期和保质期后,可通过 DATEDELTA 函数计算产品的过期时间。点击体验效果

注:DATEDELTA 函数须在日期时间字段内使用。

HOUR

HOUR 函数可用于返回日期时间中的小时数。

函数用法:

HOUR(timestamp)

函数示例:如计算打卡时间中对应的小时数,可设置公式为HOUR(打卡时间),即 2023-01-01 14:38:01 对应的小时数为 14。点击体验效果

ISOWEEKNUM

ISOWEEKNUM 函数可用于计算日期在全年中的 ISO 周数。

其中,ISO 周数根据 ISO 8601 的规则计算得出,具体计算方法如下:

  • 每年可能有 52 周或 53 周;
  • 周一至周日为一个完整周;
  • 每周的周一是该周的第 1 天,周日是该周的第 7 天;
  • 每年的第一周为当年的第一个周四所在的周:如 2017 年 1 月 5 日为当年的第一个周四,那么 2017-01-02 至 2017-01-08 为 2017 年第一周;
  • 每年的最后一周为当年最后一个周四所在的周:如 2016 年 12 月 29 日为当年的最后一个周四,那么 2016-12-26 至 2017-01-01 为 2016 年的最后一周。

函数用法:

ISOWEEKNUM(timestamp)

函数示例:ISOWEEKNUM 函数可用于计算政府和商务的会计年度,用以维持时序。点击体验效果

MINUTE

MINUTE 函数可用于返回日期时间中的分钟数。

函数用法:

MINUTE(timestamp)

函数示例:如计算打卡时间中对应的分钟数,可设置公式为MINUTE(打卡时间),即 2023-01-05 16:14:24 对应的小时数为 14。点击体验效果

MONTH

MONTH 函数可用于返回日期中的月份, 值是介于 1 到 12 之间的整数。

函数用法:

MONTH(timestamp)

函数示例:如计算考勤日期对应的月份,可设置公式为MONTH(考勤时间),即 2023-01-02 对应的月份为 1。点击体验效果

NETWORKDAYS

NETWORKDAYS 函数可计算两个日期之间完整的工作日数值,其中,工作日不包括周末和专门指定的假期。

函数用法:

NETWORKDAYS(start_timestamp, end_timestamp, [holidays])

其中各参数的含义如下:

  • start_timestamp:必需, 开始日期;
  • end_timestamp:必需,结束日期;
  • holidays:可选,可填写需要从工作日中排除的一个或多个日期,如各种省/市/自治区和国家/地区的法定假日及非法定假日。

注:holidays 参数可通过如下两种方式输入:

  • 使用 DATE 函数或作为其他函数的结果输入;如,使用函数 DATE(2012,5,23) 输入 2012 年 5 月 23 日;
  • 直接调用子表单中的日期时间字段,主表中的日期时间字段暂不支持直接调用。

函数示例:如,计算某员工 6 月外包工资时,需将 2023 年 6 月 22 日和 2023 年 6 月 23 日制定为假期,则设置公式为NETWORKDAYS(开始时间,结束时间,[DATE(2023,6,22),DATE(2023,6,23)]),即可根据开始、结束时间计算出对应的工作天数和工资。点击体验效果

NOW

NOW 函数可返回当前时间。

函数用法:

NOW()

函数示例:如签到场景中,可通过 NOW 函数生成当前时间,完成签到。点击体验效果

注:在日期时间字段中使用 NOW 函数时,时间类型可在字段属性中设置。

SYSTIME

SYSTIME 函数可返回当前服务器时间。即使客户端的时间被人为调整了,SYSTIME 函数不受影响,获取的仍然是服务器时间。

函数用法:

SYSTIME()

函数示例:如签到、打卡等场景中,可通过 SYSTIME 函数完成记录系统时间,有效避免作弊的情况。点击体验效果

注:在日期时间字段中使用 SYSTIME 函数时,时间类型可在字段属性中设置。

SECOND

SECOND 函数可用于返回日期时间中的秒数。

函数用法:

SECOND(timestamp)

函数示例:如计算签到时间中对应的秒数,可设置公式为SECOND(签到时间),即 2023-02-03 08:49:44 对应的秒数为 44。点击体验效果

TIMESTAMP

TIMESTAMP 函数可将日期对象转换成时间戳。

函数用法:

TIMESTAMP(date)

函数示例:在日期时间字段自定义时间时,可通过 TIMESTAMP 函数将日期对象转换为时间戳格式,以便于字段生成具体时间。点击体验效果

TIME

TIME 函数可返回特定时间的十进制数字。时间值为日期值的一部分,并用十进制数表示(例如 12:00 PM 可表示为 0.5,因为此时是一天的一半)。

函数用法:

TIME(hourminutesecond)

其中各参数的含义如下:

  • hour: 必需,代表小时;任何大于 23 的值都会除以 24,商作为天数,余数作为小时数。 例如,TIME(27,0,0) = 1.125, TIME(3,0,0) = 0.125,即天数不同,小数部分的时间相同;
  • minute: 必需,代表分钟;任何大于 59 的值将转换为小时和分钟。 例如,TIME(0,750,0) = TIME(12,30,0) = 0.520833;
  • second: 必需,代表秒;任何大于 59 的值将转换为小时、分钟和秒。 例如,TIME(0,0,2000) = TIME(0,33,20) = 0.023148。

函数示例:如,生产场景中,可通过 TIME 函数计算产品的待机时长。点击体验效果

TODAY

TODAY 函数可用于获取当前系统的日期,可精确到秒。

函数用法:

TODAY()

函数示例:

1)TODAY 函数可直接在日期时间字段中使用,显示的日期精度由日期时间字段的「字段属性 >> 类型」决定:

如,当设置日期时间字段类型为「年-月-日-时-分-秒」时,TODAY 函数的使用效果如下:

2)也可搭配 TEXT 函数 将获取的日期转换为文本格式,如设置公式为TEXT(TODAY(),"yyyyMMddhhmmss"),即可获取日期的年月日时分秒。点击体验效果

注:日期与文本格式的相互转换,可参考文档:文本与日期格式相互转换

WEEKDAY

WEEKDAY 函数可用于计算日期的星期数,返回 0 到 6 之间的数值。

函数用法:

WEEKDAY(日期时间)

函数示例:如计算签到日期对应的星期数,可设置公式为WEEKDAY(签到日期),即 2023-05-26 对应的星期数为 5(星期五),2023-05-28 对应的星期数为 0(星期日)。点击体验效果

WEEKNUM

WEEKNUM 函数可用于计算某日期在一年中处于第几周。

函数用法:

WEEKNUM(timestampreturn_type)

其中各参数的含义如下:

  • timestamp: 必需,指定日期;
  • return_type: 可选参数,确定一周从哪一天开始,具体参数值对应的日期如下表:

return-type

一周的第一天为

1/17/为空

星期日

​2/11

星期一

12

星期二

13

星期三

14

星期四

15

星期五

16

星期六

注:当 return_type 的值不在上述表格范围内或未填写该参数时,默认为从星期日开始计算。

函数示例:当时间选定为 2023 年 1 月 2 日时,分别以星期日和星期一作为一周的第一天,得到的周次结果是不同的。点击体验效果

WORKDAY

WORKDAY 函数可计算在某日期(起始日期)之前或之后、与该日期相隔指定工作日的某一日期的日期值。 工作日不包括周末和专门指定的假日。

函数用法:

WORKDAY(start_timestamp, days, [holidays])

其中各参数的含义如下:

  • start_timestamp: 必需,起始日期;
  • days: 必需,起始日期之前或之后不含周末及节假日的天数。 Days 为正值将生成未来日期;为负值则生成过去日期;
  • holidays: 可选,其中包含需要从工作日历中排除的一个或多个日期,例如各种省/市/自治区和国家/地区的法定假日及非法定假日。该列表可以是由日期所构成的数组常量。

注:holidays 参数可通过如下两种方式输入:

  • 使用 DATE 函数或作为其他函数的结果输入;如,使用函数 DATE(2012,5,23) 输入 2012 年 5 月 23 日;
  • 直接调用子表单中的日期时间字段,主表中的日期时间字段暂不支持直接调用。

函数示例:如,计算交货时间时,需将 2023 年 4 月 5 日制定为假期,则设置公式为WORKDAY(下单时间,处理工作日,[DATE(2023,4,5)])扣除周末和假期,即可根据下单时间计算出对应的交货时间。点击体验效果

YEAR

YEAR 函数可用于返回日期时间中的年份。

函数用法:

YEAR(timestamp)

函数示例:如计算生产时间中对应的秒年份,可设置公式为YEAR(生产日期),即 2023-02-10 对应的年份为 2023。点击体验效果

文档内容是否对您有帮助?
有帮助
没帮助没帮助
如需获取即时帮助,请联系技术支持
咨询
扫码领取100+零代码资料简道云官方微信号400-111-0890
图标在线咨询
立即体验