hi all!
用sql向时间字段插入一个空值时,为什么会变成1990-1-1? 然后怎么使插入一个空值时该字段的值就是空呢?

解决方案 »

  1.   

    因为Windows默认的时间日期就是1990-1-1
      

  2.   

    可以硬插一个null进去的,但是日期这个东西,一旦你把他写成'',肯定是1900-1-1
    建议作一个函数
    gTimeFieldNotNull(FieldName:string):string;
    begin
    result:='('+fieldname+' IS NOT NULL OR '+fieldname +'<>''1900-1-1'' ';
    end;在写sql语句的时候这样写,凡是某个字段为空或者不为空,调用此函数,应该就没有问题,我就是这么干的:)不过我用的vb的,上面的语句可能有点问题,意思我想你应该懂了:)
      

  3.   

    sql中这个‘空’值是需要用update的。
      

  4.   

    不会是数据库有磨认值吧
    update table set datetime= nil
      

  5.   

    用NULL就可以了,如果是在BROWSE狀態按CTRL+0
      

  6.   

    如果你想用程序使原来不为空的置为空用这个
    query1.fieldbyname('字段名').clear