软件注册站
热情软件屋

 
有什么方法算出这段时间内的天数
编号: QA004701    
建立日期: 2003年7月27日 最后修改日期: 2004年9月4日
所属类别: FoxPro/Visual FoxPro - 其他方面
   
    我是个foxpro6.0的初学者,用的操作系统是winxp,我在一个数据库内设了一个字段为“日期”但性质为“数值”(如“20030214”),现在我想计算出某段时间内的天数(如20030121--20030211),请问有什么方法算出这段时间内的天数。请给予帮忙,谢谢。(胡生)
   
    这位初学者问题提的有点怪,字段既然为日期型,怎又为数值型?
    下面我的回答不知是否理解他的意思。
    set cent on
    set mark to '-'
    set date to ymd
    x1=20030121
    x2=20030211
    y1=subs(allt(str(x1)),1,4)+'-'+subs(allt(str(x1)),5,2)+'-'+subs(allt(str(x1)),7,2) && x1转为字符型日期
    y2=subs(allt(str(x2)),1,4)+'-'+subs(allt(str(x2)),5,2)+'-'+subs(allt(str(x2)),7,2) && x2转为字符型日期
    ?ctod(y2)-ctod(y1)
    
    Micheal的意见:
    set cent on
    set date to ymd
    x1=20030111
    x2=20030222
    *!* 转换为字符型
    x1=str(x1,8)
    x2=str(x2,8)
    *!* 用Day()函数转换为日期型
    x1=day(val(left(x1,4)),val(subs(x1,5,2)),val(subs(x1,7,2)))
    x2=day(val(left(x2,4)),val(subs(x2,5,2)),val(subs(x2,7,2)))
    ?x2-x1
    建议在设置表结构时,不要把日期存为数值型,存入时转换时麻烦,计算时转换也麻烦,最好是日期型(方便计算,可用DTOS()函数转换为字符型)。
    
    dragon的意见:
    前两天正好要解决这个问题,你去查一下这个函数就知道了:SYS(11,' ' ),这后一个参数就是日期。然后两次的结果相减就有了!

    

此问题由hzh回答。

附加关键字:编程, 源程序, programming, source code, FoxPro/Visual FoxPro, Foxbase, dBase, xbase, FoxPro, VFP, Visual FoxPro, 其他方面,

   
 
把这个问题推荐给朋友
   
 
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio