我想把数据库中int型的NDate字段以yyyy-mm-dd形式读取出来
我用了FormatDateTime('ddddd',query1.fieldbyname('NDate').asstring)方法,能以yyyy-mm-dd方式显示数据,但是读取的不是NDate里的数据,是不是因为FormatDateTime()的参数需要日期数据类型的???
不知道怎么把int类型转换成日期类型,我用strtodate(inttostr(fieldbyname('NDate').asstring)),
报错:incompatible types 
请大家帮帮我啊,急!~

解决方案 »

  1.   

    NDate类型,什么数据库?
    可能是表示从某个起始日期到该日期的天数。如果是这样的话
    FormatDateTime('yyyy-mm-dd', query1.fieldbyname('NDate').asinteger)出来的日期是假设从1899-12-30开始的天数。
    因为Delphi中日期时间就是用浮点数表示的,表示从1899-12-30 00:00:00开始经过的天数
    贴几组数据出来看,如下这样:
    NDate值    表示日期
    0         1899-12-30
    2         1900-01-01
    12345     1933-10-18
    32767     1989-09-16
      

  2.   

    NDate不是指天数,就是日期,只不过是int型的,如:20090519
      

  3.   

    晕,你这也叫INT型,呵呵
    转换不过来应该是你的日期格式不对,到控制面板里面查查
      

  4.   

    晕,20090519和12345678有什么区别吗??
    是数据库里的字段就是int型啊,我就想把它以2009-05-18的形式输出来啊
    我觉得好奇怪strtodate(20090518),会报错:incompatible types,但是改成strtodate(2009-05-18),就不报错了,FormatDateTime方法也是这样,闷,数据库里要是存成2009-05-18的形式我就不用转了,- -~
    不过我把NDate字段用字符串截取的方式弄出来了。
    还是谢谢你哦
      

  5.   

    strtodate要求里面的字符串格式必须是日期格式,你的方法是可行的,写个函数,把你的int型的字段格式
    成日期,我都是这么做的