日期加减计算
1. 简介
1.1 案例简介
本案例将介绍如何对日期字段进行加减计算,如一个日期加上一个指定的天数/月份/年份,得到新的日期时间。
1.2 方案介绍
以下方案均可实现日期的加减计算,但计算范围和优势场景有所不同,具体信息如下表所示:
方案 | DATEDELTA() 函数 | DATE() 函数 | 时间戳计算 |
计算单位 | 日 | 年、月、日、时、分、秒 | 年、月、日、时、分、秒 |
计算思路 | 直接在指定日期的基础上增加/减少天数 | 先将年月日(时分秒)转换为日期对象,再对相应参数进行加减即可 | 直接对日期字段进行加减,加减的时间单位为毫秒 |
计算示例 | 如 10 天后: DATEDELTA(日期,10) | 如 10 年后: DATE(YEAR(DATE(日期))+10,MONTH (DATE(日期)),DAY(DATE(日期))) | 如 10 小时后: 日期+10*60*60*1000 |
— | 以此类推即可实现其他单位的加减... | 以此类推即可实现其他单位的加减... | |
优势场景 | 天数的加减 | 年份/月份的加减 | 时/分/秒的加减 |
在学习之前建议安装 日期加减计算 应用模板,本文将按照模板中的示例数据进行讲解。
2. DATEDELTA()函数
2.1 应用场景
产品入库场景中,可根据产品的生产日期和保质期,自动计算出产品的到期时间。
2.2 设置方法
进入「产品到期时间计算」表单,选中「到期时间」字段,设置公式为DATEDELTA(生产日期,保质期),表示在生产日期的基础上加上保质期,得到产品的到期时间,设置完成点击「确定」:
2.3 效果演示
3. DATE()函数
3.1 应用场景
- 员工管理场景中:根据员工的入职日期和试用期,计算出该员工的转正日期;
- 设备维护场景中:根据设备的最后维修日期,结合设备的维护周期,计算出下一次维修保养的日期。
3.2 设置方法
进入「员工转正日期计算」表单,选中「转正日期」字段,设置公式为DATE(YEAR(DATE(入职日期)),MONTH(DATE(入职日期))+试用期,DAY(DATE(入职日期))),设置完成点击「确定」:
公式说明如下:
公式 | 说明 |
DATE(YEAR(DATE(入职日期)),MONTH(DATE(入职日期)),DAY(DATE(入职日期))) | 将入职日期转换为「年月日」类型的日期对象,便于进行月份参数的加减计算 |
DATE(YEAR(DATE(入职日期)),MONTH(DATE(入职日期))+试用期,DAY(DATE(入职日期))) | 在月份参数的基础上加上试用期(单位:月)得到转正日期 |
3.3 时分秒计算场景
通过 Date() 函数还可以以时、分、秒为单位对日期进行加减计算。
选中「10小时后」字段,设置公式为DATE(YEAR(DATE(当前时间)),MONTH(DATE(当前时间)),DAY(DATE(当前时间)),HOUR(DATE(当前时间))+10,MINUTE(DATE(当前时间)),SECOND(DATE(当前时间))),设置完成点击「确定」:
公式说明如下:
公式 | 说明 |
DATE(YEAR(DATE(当前时间)),MONTH(DATE(当前时间)),DAY(DATE(当前时间)),HOUR(DATE(当前时间)),MINUTE(DATE(当前时间)),SECOND(DATE(当前时间))) | 将当前日期转换为「年月日时分秒」类型的日期对象,便于进行小时参数的加减计算 |
DATE(YEAR(DATE(当前时间)),MONTH(DATE(当前时间)),DAY(DATE(当前时间)),HOUR(DATE(当前时间))+10,MINUTE(DATE(当前时间)),SECOND(DATE(当前时间))) | 在小时参数的基础上加上 10(单位:小时)得到10小时后的日期时间 |
3.4 效果演示
4. 时间戳计算
日期字段的数据类型为时间戳,是以毫秒为单位的整数数值。可以直接取出日期字段,加/减时间(单位为毫秒)后返回到新的日期字段中即可。
4.1 应用场景
车辆租赁管理中,可根据租赁开始时间和租赁时长,计算车辆的应还时间,便于对车辆进行调度安排等。
4.2 设置方法
进入「车辆应还时间计算」表单,选中「车辆应还时间」字段,设置公式为租赁开始时间+租赁时长*60*60*1000,即将租赁时长转化为毫秒,直接加到租赁开始时间上,得到应还时间,设置完成点击「确定」: