Dynamics 365 CE:如何将DateOnly列复制到DateTime列以计算年龄?
Dynamics 365 CE中处理DateOnly生日列计算年龄的方案
方案一:创建DateTime类型的计算列BirthDateTime
如果一定要生成DateTime类型的BirthDateTime列,按以下步骤操作:
- 进入Dynamics 365的高级设置,打开「自定义」>「自定义系统」
- 在组件里找到「实体」>「联系人(Contact)」>「字段」,点击「新建」
- 字段配置:
- 显示名称:BirthDateTime
- 数据类型:选择「日期和时间」,格式根据需求选「日期和时间(本地)」或「日期和时间(UTC)」
- 字段类型:选「计算」,点击「编辑」打开计算规则编辑器
- 在计算规则中输入公式:
原理是用DATEVALUE提取BirthDate的日期部分,再拼接零点时间,转换成DateTime类型DATEVALUE(BirthDate) + TIMEVALUE("00:00:00") - 保存字段并发布,系统会自动为所有联系人记录填充该列的值
方案二:直接计算年龄(无需额外DateTime列)
你的核心需求是计算年龄,其实不用转DateTime,直接用DateOnly类型的字段就能实现:
- 新建一个计算字段,数据类型选「整数」,字段类型设为「计算」
- 基础年龄计算用这个公式:
因为TODAY()返回的是DateOnly类型,和BirthDate类型匹配,直接就能用DIFFINYEARS计算DIFFINYEARS(BirthDate, TODAY()) - 如果需要精确到是否过了当年生日的周岁,用这个进阶公式:
这个公式会判断当前日期是否已过当年生日,返回准确的周岁年龄IF( AND(MONTH(BirthDate) < MONTH(TODAY()), OR(MONTH(BirthDate) = MONTH(TODAY()), DAY(BirthDate) <= DAY(TODAY()))), DIFFINYEARS(BirthDate, TODAY()), DIFFINYEARS(BirthDate, TODAY()) - 1 )
内容的提问来源于stack exchange,提问作者Per
相关产品推荐
相关产品推荐

