时间类函数
日期转换与格式化、拆出年月周日、日期相隔与偏移、时间戳、自动增长的日期序列。
日期列先要是「日期」属性,或者用 date / dateformat 从文本规范出来,后面的函数才能用。按月汇总用 dateformat(列, "yyyy-MM");相隔天数用 days;会自己长的日期表用 datetime。
写法约定:列用列代码引用(如 AA6);函数名不分大小写;文本用英文双引号;条件里可用 and / or。示例里的「在结果列输入」指把公式写在新列的公式栏里。以下说明与应用内公式编辑器的「函数帮助」相同。
date
公式说明
将日期字符串转换为日期值, 用于时间偏移计算
公式语法
date("日期字符串", "匹配时间格式")
date("日期字符串")+时间偏移
- 日期字符串: 例如:"2023-01-11 12:11:11"
- 匹配时间格式: 默认为"yyyy-mm-dd hh:mm:ss"; "yyyy-ww"表示第 ww 周
- 时间偏移: 以秒为单位,可为负数
- 参数均可使用数据列,即表格数据每列顶部的 CODE, 例如:AA1
date("2022-03-17"); // 日期
date("2023-01-11 12:11:11", "yyyy-MM-dd HH:mm:ss"); // 精确到秒
date("2023-11", "yyyy-MM"); // 11月第1日0点
date("2022-03", "yyyy-ww"); //第3周第1日0点
dateformat
公式说明
根据时间格式,转换时间字符串。
公式语法
dateformat("时间值 / 时间列序号", "时间格式")
- 时间值: 例如: "2022-12-30"
- 时间列: 有时间值的的数据列
- 时间格式:
- yyyy-MM-dd HH:mm:ss 对应 年-月-日 小时-分钟-秒;
- ww 对应 当年第 ww 周
- 可以使用任意的组合方式,比如 MM-dd 返回的就是 月-日
datetime
应用内暂无详细说明,以公式编辑器「函数帮助」为准。
datedif
公式说明
计算两个日期之间相隔的天数、月数或年数。
公式语法
在结果列输入:DATEDIF(开始日期, 结束日期, 返回值单位);
开始日期:start_date
- 必需: 表示给定期间的第一个或开始日期的日期。日期值有多种输入方式:
- 带引号的文本字符串(例如 "2001/1/30")
- 序列号(例如 36921,在商用 1900 日期系统时表示 2001 年 1 月 30 日)或其他公式或函数的结果(例如 DATEVALUE("2001/1/30"))
结束日期:end_date
- 必需: 用于表示时间段的最后一个(即结束)日期的日期。
返回值单位:unit
必需:要返回的信息类型,其中:
"Y" 一段时期内的整年数。
"M" 一段时期内的整月数。
"D" 一段时期内的天数。
"MD" 开始日期与结束日期之间天数之差。 忽略日期中的月份和年份。
"YM" 开始日期与结束日期之间月份之差。 忽略日期中的天和年份
"YD" 开始日期与结束日期的日期部分之差。 忽略日期中的年份。
days
公式说明
返回两个日期之间的天数。
公式语法
在结果列输入:DAYS(日期 / 列序号, 日期 / 列序号);
timestamptodate
公式说明
将标准时间戳转化为标准日期
公式语法
在结果列输入:timestamptodate(时间戳 / 列序号)
- 时间戳:10 位或 13 位,例如 1675851551
unixtimestamp
根据时间格式,转换时间字符串
month
公式说明
返回日期(以序列数表示)中的月份。 月份是介于 1(一月)到 12(十二月)之间的整数。
公式语法
在结果列输入:MONTH(列序号)
MONTH 函数语法具有下列参数:
- 列序号必需。 要查找的月份日期。应使用 DATE 函数输入日期,或者将日期作为其他公式或函数的结果输入。
- 使用函数 DATE(2008,5,23) 输入 2008 年 5 月 23 日。 如果日期以文本形式输入,则会出现问题。
dayofmonth
公式说明
返回指定日期是本月的第几天。
公式语法
在结果列输入:DAYOFMONTH(日期 / 列序号)
dayofyear
公式说明
返回指定日期是今年的第几天。
公式语法
在结果列输入:DAYOFYEAR(日期 / 列序号)
dayofweek
公式说明
返回日期的星期索引值,即星期一为 1,星期日为 7。
公式语法
在结果列输入:dayofweek(日期 / 数据列, [returnType])
日期/数据列:表示日期的输入,可以是一个具体的日期值或包含日期值的数据列。
returnType:用于指定返回值的类型,共三个选项,默认为2
1:返回1
7(星期日星期六)2:返回1
7(星期一星期日)3:返回0
6(星期一星期日)
dayname
公式说明
返回指定日期是星期几,用名称表示结果,如"Sunday"、"Monday"。
公式语法
在结果列输入:DAYNAME(日期 / 列序号)
weekofyear
返回指定日期是今年的第几个星期。
公式说明
返回指定日期是今年的第几个星期
公式语法
在结果列输入:WEEKOFYEAR(date / 列序号, [mode])
date:日期
mode:可选,区分
一周以周一还是周日开始
如何界定跨年周属于去年还是今天
| mode | 一周的第一天 | 范围 | 第一周的计算 |
|---|---|---|---|
| 0 | 星期日 | 0-53 | 从本年的第一个星期日开始,是第一周。前面的计算为第0周 |
| 1 | 星期一 | 0-53 | 假如1月1日到第一个周一的天数超过3天,则计算为本年的第一周。否则为第0周 |
| 2 | 星期日 | 1-53 | 从本年的第一个星期日开始,是第一周。前面的计算为上年度的第5x周 |
| 3 | 星期一 | 1-53 | 假如1月1日到第一个周一的天数超过3天,则计算为本年的第一周。否则为上年度的第5x周 |
| 4 | 星期日 | 0-53 | 假如1月1日到第一个周日的天数超过3天,则计算为本年的第一周。否则为第0周 |
| 5 | 星期一 | 0-53 | 从本年的第一个星期一开始,是第一周。前面的计算为第0周 |
| 6 | 星期日 | 1-53 | 假如1月1日到第一个周日的天数超过3天,则计算为本年的第一周。否则为上年度的第5x周 |
| 7 | 星期一 | 1-53 | 从本年的第一个星期一开始,是第一周。前面的计算为上年度的第5x周 |
一般来说可以不用指定mode,默认为3。
yearweek
公式说明
返回指定日期所在的年份和星期数
公式语法
在结果列输入:YEARWEEK(date / 列序号, [mode])
date:日期
mode:可选,区分
一周以周一还是周日开始
如何界定跨年周属于去年还是今天
| mode | 一周的第一天 | 第一周的计算 |
|---|---|---|
| 0,2 | 星期日 | 从本年的第一个星期日开始,是第一周。前面的计算为上年度的第5x周 |
| 1,3 | 星期一 | 假如1月1日到第一个周一的天数超过3天,则计算为本年的第一周。否则为上年度的第5x周 |
| 4,6 | 星期日 | 假如1月1日到第一个周日的天数超过3天,则计算为本年的第一周。否则为上年度的第5x周 |
| 5,7 | 星期一 | 从本年的第一个星期一开始,是第一周。前面的计算为上年度的第5x周 |
isoweeknum
公式说明
返回给定日期在全年中的 ISO 周数。
ISO周数是根据国际标准化组织(ISO)制定的一种表示年份周数的方法。
ISO周数将一年划分为52或53个周,其中第一个周从每年的周一开始,并且包含该年的第4个一整周的星期一。这意味着每年的第一周可能会从上一年的最后几天开始,并延续到下一年的第一几天。
ISO周数主要用于统计和计算目的,特别是在商业和生产领域,以确定某个特定周的日期范围。
公式语法
ISOWEEKNUM(日期 / 列序号)
ISOWEEKNUM 函数语法具有下列参数。
- 日期 必需。 日期是日期时间代码,Excel 日期和时间计算。
lastdayofmonth
公式说明
返回指定日期所在月份的最后一天。
公式语法
在结果列输入:LASTDAYOFMONTH(日期 / 列序号)
hour
公式说明
返回时间值的小时数。 小时数是介于 0 (12:00 A.M.) 到 23 (11:00 P.M.) 之间的整数。
公式语法
在结果列输入:HOUR(时间 / 列序号)
HOUR 函数语法具有下列参数:
列序号必需。 时间值,其中包含要查找的小时数。时间值有多种输入方式:
带引号的文本字符串(例如 "6:45 PM")
十进制数(例如 0.78125 表示 6:45 PM)
其他公式或函数的结果(例如 TIMEVALUE("6:45 PM"))
输入 Hour(0-1)小数表示取24小时的百分值
计算24小时的75%:HOUR(0.75)
minute
公式说明
返回时间值中的分钟。 分钟是一个介于 0 到 59 之间的整数。
公式语法
在结果列输入:MINUTE(列序号)
MINUTE 函数语法具有下列参数:
列序号必需。 一个时间值,其中包含要查找的分钟。时间值有多种输入方式:
- 带引号的文本字符串(例如 "6:45 PM")
- 十进制数(例如 0.78125 表示 6:45 PM)
- 其他公式或函数的结果(例如 TIMEVALUE("6:45 PM"))
second
公式说明
返回时间值的秒数。 秒数是 0(零)到 59 范围内的整数。
公式语法
在结果列写入:SECOND(列序号)
SECOND 函数语法具有下列参数:
- 列序号必需。 一个时间值,其中包含要查找的秒数。 时间值有多种输入方式:
- 带引号的文本字符串(例如 "6:45 PM")
- 十进制数(例如 0.78125 表示 6:45 PM)
- 其他公式或函数的结果(例如 TIMEVALUE("6:45 PM"))