| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3909 人关注过本帖
标题:求助:如何实现两个字符型字段之间的加减法?
只看楼主 加入收藏
yilance
Rank: 1
等 级:新手上路
帖 子:117
专家分:4
注 册:2010-4-21
结帖率:90.91%
收藏
已结贴  问题点数:20 回复次数:22 
求助:如何实现两个字符型字段之间的加减法?
有两个字段:入学日期(rxrq)和毕业日期(byrq),然后有一个学制(xz)的字段的值是用毕业日期(byrq)的年减去入学日期(rxrq)的年。如何实现?
比如毕业日期(byrq)字段值是20090110,入学日期(rxrq)字段值是20080310,
这样一减学制是1年(学制是字符型)
如何实现呢?
repl all xz with str(val(substr(byrq,1,4))-val(substr(rxrq,1,4)))
我用了这个语句,意思就是提取毕业日期的年份的最后一个数字减去入学日期的年份最后一个数字
可是运行的结果是0,不知道如何处理了
多谢!
========================
己经可以了,正确的语句是
update 表 set xz=allt(str(val(left(byrq,4))-val(left(rxrq,4))))

感谢 tlliqi 月沐庭轩  taohua300 三位大侠 !
真心感谢!

复xl_2008_50.rar (786 Bytes)

表己经放上了,只有一条记录做为例子


[ 本帖最后由 yilance 于 2012-11-28 12:11 编辑 ]
搜索更多相关主题的帖子: 如何 加减法 
2012-11-28 11:39
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:6 
有两个问题,1、你的入学日期比毕业日期还迟一年?也就是说,毕业得比入学早一年,奇怪。
2、你怎么不用日期型数据,却用字符型?
最好发上你的表来,大家看看。
substr(byrq,4,1),只是第四个字条相减,会出错的。应该是
left(byrq,4,),前四们相减才好。
repl all xz with str(val(left(byrq,4))-val(left(rxrq,4)))

[ 本帖最后由 月沐庭轩 于 2012-11-28 11:49 编辑 ]

坚持学习vfp,QQ:306805680
2012-11-28 11:42
taohua300
Rank: 12Rank: 12Rank: 12
来 自:光
等 级:贵宾
威 望:14
帖 子:1636
专家分:3906
注 册:2009-3-11
收藏
得分:6 
repl all xz with str(val(substr(byrq,4,1))-val(substr(rxrq,4,1)))


[ 本帖最后由 taohua300 于 2012-11-28 11:46 编辑 ]

个性太多,无法显示
2012-11-28 11:43
taohua300
Rank: 12Rank: 12Rank: 12
来 自:光
等 级:贵宾
威 望:14
帖 子:1636
专家分:3906
注 册:2009-3-11
收藏
得分:0 
repl all xz with str(val(left(byrq,4))-val(left(rxrq,4)))
这样会好点


[ 本帖最后由 taohua300 于 2012-11-28 11:47 编辑 ]

个性太多,无法显示
2012-11-28 11:44
yilance
Rank: 1
等 级:新手上路
帖 子:117
专家分:4
注 册:2010-4-21
收藏
得分:0 
以下是引用月沐庭轩在2012-11-28 11:42:56的发言:

有两个问题,1、你的入学日期比毕业日期还迟一年?也就是说,毕业得比入学早一年,奇怪。
2、你怎么不用日期型数据,却用字符型?
最好发上你的表来,大家看看。
不好意思,毕业日期和入学日期写错了
两个应该互换
现在改过来了
2012-11-28 11:45
yilance
Rank: 1
等 级:新手上路
帖 子:117
专家分:4
注 册:2010-4-21
收藏
得分:0 
以下是引用taohua300在2012-11-28 11:43:51的发言:

repl all xz with str(val(substr(byrq,4,1))-val(substr(rxrq,4,1)))
用了,对的!
可是有一个问题是我的学制也是字符型的
能在这个语句上做一个转换吗?
现在你上面的这个可以操作
可是我先要将表的“表设计器”学制字段操作成数值型,再用上面的语句,然后再把表的“表设计器”的学制改成字符型
因为表的标准表是要求学制是字符型的
多谢!
2012-11-28 11:49
yilance
Rank: 1
等 级:新手上路
帖 子:117
专家分:4
注 册:2010-4-21
收藏
得分:0 
以下是引用月沐庭轩在2012-11-28 11:42:56的发言:

有两个问题,1、你的入学日期比毕业日期还迟一年?也就是说,毕业得比入学早一年,奇怪。
2、你怎么不用日期型数据,却用字符型?
最好发上你的表来,大家看看。
substr(byrq,4,1),只是第四个字条相减,会出错的。应该是
left(byrq,4,),前四们相减才好。
repl all xz with str(val(left(byrq,4))-val(left(rxrq,4)))
恩,多谢!
我来用用看!
日期是字符型的因为是要上传上级部门的标准表,就是字符型不是日期型,要是日期型,更搞死人了
2012-11-28 11:51
yilance
Rank: 1
等 级:新手上路
帖 子:117
专家分:4
注 册:2010-4-21
收藏
得分:0 
repl all xz with str(val(left(byrq,4))-val(left(rxrq,4)))

repl all xz with str(val(substr(byrq,4,1))-val(substr(rxrq,4,1)))
这两条语句都用了,可是都显示的是空的,不知道为何
看着是没问题的语句啊
2012-11-28 11:54
yilance
Rank: 1
等 级:新手上路
帖 子:117
专家分:4
注 册:2010-4-21
收藏
得分:0 
以下是引用月沐庭轩在2012-11-28 11:42:56的发言:

有两个问题,1、你的入学日期比毕业日期还迟一年?也就是说,毕业得比入学早一年,奇怪。
2、你怎么不用日期型数据,却用字符型?
最好发上你的表来,大家看看。
substr(byrq,4,1),只是第四个字条相减,会出错的。应该是
left(byrq,4,),前四们相减才好。
repl all xz with str(val(left(byrq,4))-val(left(rxrq,4)))
恩,我把表发过来给大家看看
搞伤了!
2012-11-28 11:54
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:8 
以下是引用yilance在2012-11-28 11:49:23的发言:

用了,对的!
可是有一个问题是我的学制也是字符型的
能在这个语句上做一个转换吗?
现在你上面的这个可以操作
可是我先要将表的“表设计器”学制字段操作成数值型,再用上面的语句,然后再把表的“表设计器”的学制改成字符型
因为表的标准表是要求学制是字符型的
多谢!
直接用上面语句没错的
2012-11-28 11:56
快速回复:求助:如何实现两个字符型字段之间的加减法?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018365 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved