找回密码
 立即注册

QQ登录

只需一步,快速开始

Shiyu_CC

中级会员

101

主题

307

帖子

906

积分

中级会员

积分
906
Shiyu_CC
中级会员   /  发表于:2024-10-17 17:46  /   查看:273  /  回复:5
1金币
本帖最后由 Shiyu_CC 于 2024-10-17 18:07 编辑

数据表有一个日期字段,为生产日期;

想要用公式算出至今为止的年数:
DATEDIF([生产日期], TODAY(), "Y") + (DATEDIF([生产日期], TODAY(), "YD") / 365)


但是报错,显示如图;正确的公式应该怎么写?





附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

您好,这边用 MySQL 测试了下,可能是 MySQL 不支持 DATEDIF 的 YD 参数,看能不能用计算天去替代: ROUND(DATEDIF([生产日期],NOW(),"D")/365,1)

5 个回复

倒序浏览
最佳答案
最佳答案
Simon.Sun活字格认证 Wyn认证
超级版主   /  发表于:2024-10-17 17:46:51
来自 4#
您好,这边用 MySQL 测试了下,可能是 MySQL 不支持 DATEDIF 的 YD 参数,看能不能用计算天去替代:
ROUND(DATEDIF([生产日期],NOW(),"D")/365,1)
回复 使用道具 举报
Simon.Sun活字格认证 Wyn认证
超级版主   /  发表于:2024-10-18 09:05:43
2#
您好,报错的原因是因为公式字段里不支持使用 TODAY() 函数,可以用 NOW() 来替代。
另外看公式字段年份是想精确到小数位,这边在内建库测试需要处理下年份为小数,负责就当整数处理了,得不到想要的结果。当前不同数据库行为可能不一样,如果得不到小数位,可以参考上面的处理方法:
DATEDIF([生产日期], NOW(), "Y") + ROUND(DATEDIF([生产日期], NOW(), "YD")  / 365.000001, 2)

最后,公式字段里支持的函数列表可以看帮助手册,手册外的函数是不支持的:
公式字段 - 活字格V10帮助文档 (grapecity.com.cn)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Shiyu_CC
中级会员   /  发表于:2024-10-18 09:18:18
3#
Simon.Sun 发表于 2024-10-18 09:05
您好,报错的原因是因为公式字段里不支持使用 TODAY() 函数,可以用 NOW() 来替代。
另外看公式字段年份是 ...

DATEDIF([生产日期],NOW(),"Y")+ROUND(DATEDIF([生产日期],NOW(),"YD")/365.000001,2)
还是报错

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Shiyu_CC
中级会员   /  发表于:2024-10-21 09:00:25
5#
Simon.Sun 发表于 2024-10-18 09:43
您好,这边用 MySQL 测试了下,可能是 MySQL 不支持 DATEDIF 的 YD 参数,看能不能用计算天去替代:
ROUND ...

可以添加公式字段了,谢谢
回复 使用道具 举报
Simon.Sun活字格认证 Wyn认证
超级版主   /  发表于:2024-10-21 09:29:43
6#
不客气,后续有问题欢迎您发新贴交流哈~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部