请教各位vf数据库高手

ycf2005 2004-09-18 06:54:34
请教各位vf数据库高手:
在VF6.0的库中,时间记录是这样的格式:2004-9-18 00:15:28
我想用命令将该格式转换为:20040918001528 也就是将上述格式中的两横去掉,空格去掉,时间分隔符去掉。
不知各位高手是否有解决办法,还有就是库中的时间记录可实在不少,需要一个能够批量转换的命令,最好是一条命令就能够完成。
谢谢各位高手的指教!
谢谢!
我的mail:ycfem@hotmail.com
...全文
134 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
coolyylu 2004-11-19
  • 打赏
  • 举报
回复
update table1 set cdate = strtran(strtran(strtran(fdate ,"-" ,"") ,":") ,space(1) ,"")
mh_xxw 2004-11-19
  • 打赏
  • 举报
回复
可以用一个循环来判断
把日期2004-9-18 09:58:24变成一个字符串
用substr()函数依次判断每个字符的值,如果是'0'..'9'中的任何一个就把它保留或者放到一个新的变量中去.
如果不是则舍弃或者不放到新的变量中去

dfwxj 2004-09-22
  • 打赏
  • 举报
回复
OK,解决问题就行了
ycf2005 2004-09-22
  • 打赏
  • 举报
回复
apple_8180(十豆三) ,你好,谢谢,问题解决了,步骤是:
set date to ymd
repl all nyr1 with ttoc(ctot(nyr),1)
结果是:20040918095824 符合要求

用 JohnShen(因果网)的方法
repl all nyr1 with CHRTRAN(nyr, '- :', '')
结果是:2004918095824 2004后缺0 不符要求

感谢!是在解决大问题了。
十豆三 2004-09-22
  • 打赏
  • 举报
回复
你在
repl all nyr1 with ttoc(ctot(nyr),1)
之前执行
set date to ymd

或者用 JohnShen(因果网)的方法:

repl all nyr1 with CHRTRAN(nyr, '- :', '')

ycf2005 2004-09-22
  • 打赏
  • 举报
回复
apple_8180(十豆三) ,你好,你提供的方法我试了,
用该命令:repl all nyr1 with ttoc(ctot(nyr),1)
结果是nyr1字段下的所有记录均为:14个0
nyr字段下的字符记录为:2004-9-18 09:58:24
我新增了一个字段nyr1,依然是字符型,将存放转换过来的字符数据:20040918095824
感谢各位高手的指教,但是现在,问题依旧没有解决?
还有办法吗?
如果一步不行,那分步操作也行,有办法吗?
请各位指教!
JohnShen 2004-09-22
  • 打赏
  • 举报
回复
有一个函数可以完成你的要求:
?CHRTRAN(ttoc(DATETIME()), '- :', '')
将上面ttoc(DATETIME())替换成你的字段名。
十豆三 2004-09-22
  • 打赏
  • 举报
回复
如果fld1字段类型是字符的,又不想把它改为日期时间型。那么用以下:
repl all fld2 width ttoc(ctot(fld1),1)
十豆三 2004-09-22
  • 打赏
  • 举报
回复
你的fld1字段类型是字符的吧,把改为日期时间型。
十豆三 2004-09-22
  • 打赏
  • 举报
回复
你用下这个
?TTOC(DATETIME(),1)

我把?和,都改为英文,即半角。
ycf2005 2004-09-22
  • 打赏
  • 举报
回复
yestoyes() ,你好,你说的办法,我试了,提示“函数参数的值,类型或数目无效”,不行。
我要注明的是:上次我的问题中的字段类型已经是字符型,即格式:2004-9-18 00:15:28
它所记录的是一段时间值,但却是以字符型保留的,现在要求将其转换为:20040918001528
仍然是字符型,请问高手,是否有解决办法?
仔细考虑过,可能需要多步操作才能完成,敬请高手指教!
谢谢!
yestoyes 2004-09-18
  • 打赏
  • 举报
回复
可以用TTOC()呀
例:
?TTOC(DATETIME(),1)
返回的是:“20040918185908”
你要批量更改记录,格式不符呀,因为转换后的“20040918185908”是字符型,而原来的可能是日期时间型。
好了,类型的事你自己看着办,现假设表中有日期时间型字段"fld1",另有字符型字段"fld2",你要一次性转换可以用如下一条命令完成:
repl all fld2 width ttoc(fld1,1)

2,722

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧