zoukankan      html  css  js  c++  java
  • 关于Delphi中RS Float字段只有4位及OADateTime不能显示到秒的解决办法

    去年就Google过答案了
    今天居然忘了还好当时告诉同事了他还记得。。
    大致如下:
    Delphi 中对ADO RS (或者ADO本身?)浮点字段有2种存储方式:
    TFloatField(能存储全部精度)、TBCDField(转化后只能显示小数点后4位)

    通过RS的EnableBCD来控制,该属性默认为True因而默认情况下,浮点字段的ASFloat 返回结果只保留了4位小数。
    解决办法:在生成字段前设置该属性即可

    例如我们程序中时间是使用OA时间存储的:

    rs1:=TADODataSet.Create(Application);
    rs1.Connection:
    =Datam.cn;
    rs1.EnableBCD:
    =false;

    //SQL查询
    Common.ExecSQLQuery(rs1,sSql);

    这样 rs1.fieldbyname('fBeginDate').AsFloat 就能得到6位小数(到秒)
    但DateTimeToStr( rs1.fieldbyname('fBeginDate').AsFloat  ) 依旧不能正常显示到秒(至于为什么就不清楚了,版本是Delphi6 sp2)
    解决办法是:
    FormatDateTime('yyyy-mm-dd hh:nn:ss' ,rs1.fieldbyname('fBeginDate').AsFloat)

  • 相关阅读:
    Pandas也能轻松绘图,简单而又漂亮
    笔试题: 二叉排序数左移k个
    补题next_permutation
    从HTTP到HTTPS
    HTTP首部字段详解
    HTTP请求方法及响应状态码详解
    HTTP报文格式详解
    TCP/IP网络基础
    Netty学习笔记
    ZooKeeper学习笔记
  • 原文地址:https://www.cnblogs.com/calmzeal/p/1109165.html
Copyright © 2011-2022 走看看