我用的数据库是sql,有个 毕业时间 的字段,我定义数据类型是DateTime,在delphi,用DateTimePicker控件操作它,但问题是,有些人的 毕业时间 是没有日的,只有年月,而我不想随便填个日上去,想把它空着,就像 1999-8   ,怎么在不改变数据类型和DateTimePicker控件的情况下把没有日 的日期写进去!~谢谢~

解决方案 »

  1.   

    不太明白,你试一下SQL中的函数datapart()看看能处理吗?
      

  2.   

    不可能的。
    要么你改varchar类型。
      

  3.   

    假如用了varchar类型,那还能用DateTimePicker控件吗??
      

  4.   

    xxxxx:=FomatDateTime('yyyy-mm',DateTimePicker.DateTime)
      

  5.   

    xxxxx:=FomatDateTime('yyyy-mm',DateTimePicker.DateTime)   和  属性format 设为yyyy-MM  的方法可以解决不确定日的 ,但是假如有个人可以确定年月日的,我还是要把它输入,那怎么办??
      

  6.   

    可以确定年月日的
    -- xxxxx:=FomatDateTime('yyyy-mm-dd',DateTimePicker.DateTime)
      

  7.   

    单靠这个控件是无法实现的
    你可以再多一个选项,动态改变 format 属性.
      

  8.   

    我建议你用3个word类型字段来分别保存year,month,day,

    decodedate(datetimepicker.date,year,month,day)来得到单独的year,month,day
    并将其写入对应的DBEdit控件,如:
    DBEdit1.text:=inttostr(year);
    DBEdit2.text:=inttostr(month);
    DBEdit3.text:=inttostr(day);
    如果你不想要day,
    在post之前将DBEdit3中的text手工清除就行了
      

  9.   

    没有天数,在datetime字段是不能存贮的,除非把它改为char型,
    然后用楼上的方法其实也没什么,加上天数也不会影响的
    前几天我也遇到这个问题
      

  10.   

    在DateTimePicker上面放个TEDIT外观属性改改
    从你的情况看时间没有用,可以用时间来标识是否有日
    比如2004-06-09 00:00:00 表示没有日