找回密码
 立即注册

QQ登录

只需一步,快速开始

Jion
金牌服务用户   /  发表于:2024-11-6 14:01  /   查看:155  /  回复:10
10金币
下面这个截图里面的数字其实是个日期类型的字段值,按照实际取值的话其他文本都可以,不过日期类型会转为数字,怎么让它在插入日志表的时候转换回去再插入呢?是先设置变量名称取到值判断是否为日期再转换吗?


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

最佳答案

查看完整内容

感谢大佬的支持。 目前来说,日期的值有些特殊,确实没有一个很好的机制来判断这个变更的值到底是数字类型,还是日期类型。计划任务上下文加一个字段类型,确实能解决问题,但是这个类似除了我们现在的这样的情况外,其他好像用处也不是很大。当然您这边有需求,这边欢迎您去论坛需求板块提个需求,产品经理会进行评估。 就目前的解决方案是,如果我们记录的业务数据表有限,可以尝试通过列名去做判断。就像格友说的,写死列名 ...

10 个回复

倒序浏览
最佳答案
最佳答案
Simon.Sun活字格认证 Wyn认证
超级版主   /  发表于:2024-11-6 14:01:44
来自 11#
感谢大佬的支持。
目前来说,日期的值有些特殊,确实没有一个很好的机制来判断这个变更的值到底是数字类型,还是日期类型。计划任务上下文加一个字段类型,确实能解决问题,但是这个类似除了我们现在的这样的情况外,其他好像用处也不是很大。当然您这边有需求,这边欢迎您去论坛需求板块提个需求,产品经理会进行评估。

就目前的解决方案是,如果我们记录的业务数据表有限,可以尝试通过列名去做判断。就像格友说的,写死列名或维护配置表都可以,但是会怎加后期字段名变更维护的成本。其实有的数据库列名命名规范里,建议是第一个字母表示字段类型:

有这种约定的话,通过列名就知道字段类型了,然后就可以针对性的去做判断处理。

本帖子中包含更多资源

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

x
回复 使用道具 举报
没事测着玩
高级会员   /  发表于:2024-11-6 14:40:20
2#
本帖最后由 没事测着玩 于 2024-11-6 14:42 编辑

确实需要判断一下再进行转换,判断的话感觉没有什么好的方式,你可以试试不同数据用=TEXT()公式转换后是什么样子。

评分

参与人数 1金币 +5 收起 理由
Nathan.guo + 5 赞一个!

查看全部评分

回复 使用道具 举报
Jion
金牌服务用户   /  发表于:2024-11-6 14:48:29
3#
没事测着玩 发表于 2024-11-6 14:40
确实需要判断一下再进行转换,判断的话感觉没有什么好的方式,你可以试试不同数据用=TEXT()公式转换后是什 ...

好的,我试试看,谢谢!
回复 使用道具 举报
Nathan.guo活字格认证 Wyn认证
超级版主   /  发表于:2024-11-6 16:38:26
4#
感谢大佬支持,数字格式是活字格默认的oadate格式,转化的话确实是使用excel公式会方便一些~~
回复 使用道具 举报
Jion
金牌服务用户   /  发表于:2024-11-6 17:15:30
5#
Nathan.guo 发表于 2024-11-6 16:38
感谢大佬支持,数字格式是活字格默认的oadate格式,转化的话确实是使用excel公式会方便一些~~

不过我试了下,好像转换也不行,这样转换后没有效果,是因为哪里写的不对吗?而且还涉及另外一个问题,就是这个oldvalue在修改时保存到数据库的时候可能是纯粹的数值类型的字段,到时候如果真有个456177的值,这种应该怎么判断它是时间类型还是数值金额呢?

本帖子中包含更多资源

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

x
回复 使用道具 举报
Lay.Li悬赏达人认证 活字格认证
超级版主   /  发表于:2024-11-6 17:35:18
6#
您好,这里的公式感觉有点问题哈,试试用=text(Item.OldValue,"yyyy-mm-dd")函数试试哈
回复 使用道具 举报
Jion
金牌服务用户   /  发表于:2024-11-6 17:42:57
7#
Lay.Li 发表于 2024-11-6 17:35
您好,这里的公式感觉有点问题哈,试试用=text(Item.OldValue,"yyyy-mm-dd")函数试试哈

这个函数是可以,但是就出现了上面我说的那种情况:当我的oldvalue值是金额=45604的情况下,它变成了日期类型了。

本帖子中包含更多资源

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

x
回复 使用道具 举报
Lay.Li悬赏达人认证 活字格认证
超级版主   /  发表于:2024-11-6 17:55:35
8#
您好,这里是因为,如果原始值没有话,函数就将0或者空转化为 1900-01-30了
可以修改一下函数,在转化前做一下判断即可

=IF(OR(Item.OldValue=0,ISBLANK(Item.OldValue)),Item.OldValue,TEXT(Item.OldValue,"yyyy-mm-dd"))

回复 使用道具 举报
Jion
金牌服务用户   /  发表于:2024-11-7 13:14:32
9#
Lay.Li 发表于 2024-11-6 17:55
您好,这里是因为,如果原始值没有话,函数就将0或者空转化为 1900-01-30了
可以修改一下函数,在转化前做 ...

用这个其实也是一样的情况:当我的oldvalue值是数字=45626的情况下,它变成了日期类型了,我感觉就是中间缺少一个判断字段类型的地方,假如这个字段是日期就转换,如果不是日期类型的就不做转换。

本帖子中包含更多资源

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

x
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部