数据表中字段“memberbirthday”是datetime类型, datatimepiker日期控件中,通过:memberbirthday.Date 获取了所选日期的值,存入数据表后,我发现字段的值总是: 1980-03-21 00:00:00 这样类型 的,我想把后面的时间:00:00:00全部去了,只存一个日期1980-03-21 ,请问我该如何处理?该控件是否有属性可以直接设置?或通过函数转也行。

解决方案 »

  1.   


    formatdatetime('yyyy-mm-dd', memberbirthday.Date);//string类型
      

  2.   

    不要去纠结数据库存储的方式.只要在你需要显示的地方格式化一下就行了.
    例如想在数据库里显示select convert(char(10,getdate(),120)在程序上,字段编辑器可以设置其属性DisplayFormat为yyyy-MM-dd代码中可以写 Edit1.Text := FormatDateTime('yyyy-MM-dd',Now);
      

  3.   

    2楼的介绍中,提到:在程序上,字段编辑器可以设置其属性DisplayFormat为yyyy-MM-dd请问:属性DisplayFormat 如何找到,我怎么没有看到?
      

  4.   

    查查   decodetime      和 encodetime   记不清了。用这个。
      

  5.   

    decodetime 和 encodetime ??日期控件的属性?
      

  6.   

    发现字段的值总是: 1980-03-21 00:00:00 这样类型 的,我想把后面的时间:00:00:00全部去了,只存一个日期1980-03-21  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    人家数据库DateTime字段类型,存储的数据就是以这种方法来显示的,再说这个数据库中的数据显示,对用户是不可见的,你只需要在需要显示的地方进行格式化显示就行了FormatDateTime
      

  7.   

    你的意思是把DATIMEPICKER的日期存到数据库里只要2011-03-20不要后面的0:00:00是吗》》
    两个方案:
    1,把数据库里德对应字段设为DATETIME格式,存得时候用函数去datetimepicker的日期
    formatdatetime('YYYY-MM-DD',DATETIMEPICKER.DATE),把这个值存进去就可以了,但是你直接打开表,里面显示的还是又后面的0:00:00的,但是在程序里显示是没有0:00:00的2,把数据库里德对应字段设为nvarcha(10存得时候用函数去datetimepicker的日期
    formatdatetime('YYYY-MM-DD',DATETIMEPICKER.DATE),把这个值存进去就可以了,不问你怎么取该字段的值都是没有0:00:00的个人建议第一种,因为是时间格式的在你进行各种日期操作都没有问题的
      

  8.   

    楼上说的对数据库里显示 总是有时分秒的 
    控件有个kind,你可以设置成日期形式的,存的时候自然还得用datetimepicker.date只存日期也可以在数据库里存字符串形式的 datetostr(Date) 和strtodate(xx)进行转换
      

  9.   

    数据表里用date类型,你用的是什么数据库?有没有date类型?
      

  10.   

    你直接在system里找timer,安装控件,在安装一个label的控件.
    打开timer写入代码!
    procedure Tform1.Timer1timer(sender Object);
    begin
    label1.caption := datetimetostr(now);
    end;
    end.
      

  11.   

    感谢楼上几位,可能我对数据库字段或类型不是太懂,反正只要显示出来时没时间就行。另外,再想请教,要是在DBGRID中显示这个字段 USERBIRTHDAY时,我要如何去了后面的时间呢?代码写那里?