补充一下,我本来的目的是使用这个变量作为时间来处理,但是sql下的datetime却是连时间和日期在一起的.怎么样让我能把这个变量只操作
它的时间部分,比如在显示时不显示那个1899-12-30?

解决方案 »

  1.   

    时间型数据为NULL时,表现出来则为1899年12月31日.
    可以将时间型数据转化为字符。
    select convert(char(10),时间字段,120) from 表名
      

  2.   

    问题分析:1、这个字段datetime你没设非空
    2、你向这个字段插入了空格,或非可视字符。以上的结果会产生默认值提示:datetime实际是浮点类型数据。
      

  3.   

    可以在TDateTimeField类型字段的OnGetText事件中加入以下代码:
    if (Sender as TField).IsNull then
      Text := ''
    else
      Text := FormatDateTime('yyyy-mm-dd', (Sender as TField).AsDateTime);
      

  4.   

    呵,数据库的字段里面的值是你自己插入的吗?如果是你自己插入的数据的话,那就是插入的数据本来就没有满足你要求,如果你插入的仅仅是时间,那么绝对不会显示日期的!如果你的哪个字段的值是从sql server的机器里面自动取的,建议你取 time而不是date或者是now!