日期函数

日期函数简介

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

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

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

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

DATE

DATE(timestamp)

将时间戳转换为日期对象。

DATE(year,month,day)

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

将年月日(时分秒)转换为日期对象。

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

例如,2015 年 11 月 1 日的日期对象可以用如下表示:

DATE(2015,11,1)

DATE(1446307200000)

DATE(2015,11,1,0,0,0)

这三个都表示“Sun Nov 01 2015 00:00:00 GMT+0800”

DAY

DAY(timestamp)

返回某日期的天数, 天数是介于 1 到 31 之间的整数。

DAYS

DAYS(end_timestampstart_timestamp)

返回两个日期之间的天数。

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

DAYS360

DAYS360(end_timestampstart_timestampmethod)

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

  • end_timestamp: 必需。结束日期。
  • start_timestamp: 必需。起始日期。
  • method: 可选。用于指定在计算中是采用美国方法还是欧洲方法。不填或false表示是美国方法,true表示是欧洲方法。

DATEDIF

DATEDIF(start_timestamp, end_timestamp, [unit])

计算出两个时间的差值。

  • start_timestamp必需。 一个代表开始时间的日期。
  • end_timestamp必需。 一个代表结束时间的日期。
  • Unit可选。一个可选参数,默认为 “d”,可以是 “y” 、“M”、“d”、“h”、“m”、“s” ,分别代表计算两个日期相差的年数、月数、天数、小时数、分钟数、秒数。(区分大小写,大写M代表月,小写m代表分。)

根据需要,可以通过 DATEDIF 函数计算出相差的年数(“y”)、月数(“M”)、天数(“d”)、小时数(“h”)、分数(“m”)以及秒数(“s”)。

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

  • 表单内应用

  • 数据工厂内应用

数据工厂>>字段设置>>计算字段

更详细的使用可以参考文档:如何计算两个日期的时间差

DATEDELTA

DATEDELTA(timestampdeltadays)

将指定日期加/减指定天数。

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

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

效果如下:

HOUR

HOUR(timestamp)

返回某日期的小时数。

ISOWEEKNUM

ISOWEEKNUM(timestamp)

返回给定日期在全年中的 ISO 周数。

  • timestamp: 必需。

MONTH

MONTH(timestamp)

返回某日期的月份。 月份是介于 1 到 12 之间的整数。

MINUTE

MINUTE(timestamp)

返回某日期的分钟数。

NOW

NOW()

返回当前时间。与TODAY函数相同。

NETWORKDAYS

NETWORKDAYS(start_timestamp, end_timestamp, [holidays])

返回参数 start_timestamp 和 end_timestamp 之间完整的工作日数值。工作日不包括周末和专门指定的假期。 可以使用函数 NETWORKDAYS,根据某一特定时期内雇员的工作天数,计算其应计的报酬。

  • start_timestamp:必需。 一个代表开始日期的日期。
  • end_timestamp:必需。 一个代表终止日期的日期。
  • *Holidays * :可选。一个可选参数,其中包含需要从工作日历中排除的一个或多个日期,例如各种省/市/自治区和国家/地区的法定假日及非法定假日。该列表可以是由日期所构成的数组常量。

注意: 公式中的 Holidays 应使用 DATE 函数输入日期,或者将日期作为其他公式或函数的结果输入。 例如,使用函数 DATE(2012,5,23) 输入 2012 年 5 月 23 日。 如果日期以文本形式输入,则无法返回计算结果。

SYSTIME

SYSTIME()

返回当前服务器时间。

即使客户端的时间被人为调整了,SYSTIME函数不受影响,获取的仍然是服务器时间。例如签到、打卡等场景下,可避免调整时间作弊的情况。

SECOND

SECOND(timestamp)

返回某日期的秒数。

TIMESTAMP

TIMESTAMP(date)

将日期对象转换成时间戳。

TIME

TIME(hourminutesecond)

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

  • hour: 必需。0(零)到 32767 之间的数字,代表小时。 任何大于 23 的值都会除以 24,余数将作为小时值。 例如,TIME(27,0,0) = TIME(3,0,0) = .125
  • minute: 必需。 0 到 32767 之间的数字,代表分钟。 任何大于 59 的值将转换为小时和分钟。 例如,TIME(0,750,0) = TIME(12,30,0) = .520833
  • second: 必需。 0 到 32767 之间的数字,代表秒。 任何大于 59 的值将转换为小时、分钟和秒。 例如,TIME(0,0,2000) = TIME(0,33,20) = .023148

TODAY

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

函数用法:

TODAY()

函数示例:

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

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

2)也可搭配 TEXT 函数将获取的日期转换为文本格式,以获取年月日为例,效果如下:

TEXT(TODAY(),"yyyyMMdd")

注:将获取的日期转换为文本的格式,可参考 TEXT 函数

WORKDAY

WORKDAY(start_timestamp, days, [holidays])

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

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

在计算发票到期日、预期交货时间时,可以使用函数 WORKDAY 来扣除周末或假日。

注意: 公式中的 Holidays 应使用 DATE 函数输入日期,或者将日期作为其他公式或函数的结果输入。 例如,使用函数 DATE(2012,5,23) 输入 2012 年 5 月 23 日。 如果日期以文本形式输入,则无法返回计算结果。

WEEKNUM

WEEKNUM(timestampreturn_type)

返回该日期在一年中的第几周。

有时我们需要知道未来的某个日期是一年中的第几周;而通过查询日历表这种方法效率有些低,这时就可以使用 WEEKNUM 函数。

  • timestamp: 必需。指定日期。
  • return_type: 可选。一参数,确定一周从哪一天开始。默认值为1。

return-typy

一周的第一天为

1/17/为空

星期日

​2/11

星期一

12

星期二

13

星期三

14

星期四

15

星期五

16

星期六

return_type不同,代表一周的第一天不同,计算的周次结果也可能有所不同; 当return_type的值不在上述表格范围内时,也默认为从星期日开始计算。

以下图为例,当时间选定为 2021 年 1 月 4 日时,分别以星期日和星期三作为一周的第一天,得到的周次结果是不同的:

YEAR

YEAR(timestamp)

返回某日期的年份。

日期函数综合运用举例

录入护照生效日期,自动计算到期时间,到期时间为年份 +10,月份不变,天数 -1。

思路:提取出“护照生效日期”字段的年月日,进行加减计算出到期时间,再通过 DATE(年,月,日) 转换成日期对象,放入日期字段中得到“护照到期时间”

效果如下:

本文是否对您有帮助?
 有帮助
 没帮助
您是否遇到了以下问题?
如需获取即时帮助,请联系技术支持