|
本帖最后由 流浪铁匠 于 2018-7-1 20:33 编辑
这篇不涉及日期时间函数的各种应用与数学思路
而也是这部分函数在应用里的几个极端情况
1) 时间的临界点 23:59:59.500
看到这个值有些人会知道我想说什么,
我知道的excel的时间格式最小可达到毫秒部分
测试发现部分日期时间函数对日期的识别不是取整的,而是以这个时间为临界点
23:59:59.499(含)前识别为当日日期,23:59:59.500开始识别为第2天
根据以上测试结果表明
day/weekday/year/month/hour/minute/second/days360 这8个函数对日期时间的识别不完全按照日期部分,
这8个函数对日期的识别范围至少到毫秒的精度,23:59:59.499(含)前识别为当日日期,23:59:59.500开始识别为第2天
换算为数值即0.999994201388889与0.999994212962963 2个值之间,遍历后定位为0.999994212962963这个值(未考虑浮点精度)
text的参数使用y/m/d/h/h:mm/h:mm:ss 时与上述性质相同
days/edate/eomonth/weeknum/isoweeknum/workday(.intl)/networkdays(.intl)/yearfrac
这10个函数对日期时间的识别仅识别日期部分,严格取整,时间范畴无关
time和date的舍入点很有意思,还是0.99999976146501这个临界点
另外测试了半天
now函数的结果为 e/m/d h:mm:ss.00
毫秒部位只有2位
二,不直接支持区域引用的函数
edate/eomonth/weeknum/workday(.intl)/networkdays(.intl)/yearfrac
测试表明以上函数不支持直接引用区域的方式来产生数组结果
这是之前1个群讨论的问题,批量测试后发现上述8个函数的参数不能直接引用一个区域进行数组运算
可以在引用区域的基础上,--区域或者*1/+0等等即转化为内存数组来可以正常返回数组结果
三,date函数的限制
date函数一共有3个参数
函数帮助内明确了1参的范围(0-9999)与2/3参数支持负数的应用
不过,有2点是官方帮助没介绍的
1,熟悉的临界舍入点0.99999976146501
date的3个参数的舍入点都是0.99999976146501这个值
2,明确的数据类型,整数型
date的1参在上述官方帮助内有明确的范围不做介绍
这里主要针对2/3参数
这2个参数在帮助内没说明具体范围但测试后都可以明确为整数型(上限32767)
微软明显偷懒了,date的2参上限也是这个值但未进行修整,超过这个值则会报错
即测试证明date的2/3参数的数据类型都是整数型(32767)
有兴趣的自己测试下,time的3个参数也具有类似性质
小数舍入点为0.99999976146501
上限均为32767,如果输32768则返回num错误,这里不再截图
|
评分
-
3
查看全部评分
-
|