Delph7中 datatimepiker日期控件,如何只获取日期?

混世罗汉 2011-03-28 12:45:49
数据表中字段“memberbirthday”是datetime类型, datatimepiker日期控件中,通过:memberbirthday.Date 获取了所选日期的值,存入数据表后,我发现字段的值总是: 1980-03-21 00:00:00 这样类型 的,我想把后面的时间:00:00:00全部去了,只存一个日期1980-03-21 ,请问我该如何处理?

该控件是否有属性可以直接设置?或通过函数转也行。
...全文
323 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
混世罗汉 2011-04-01
  • 打赏
  • 举报
回复
感谢楼上几位,可能我对数据库字段或类型不是太懂,反正只要显示出来时没时间就行。另外,再想请教,要是在DBGRID中显示这个字段 USERBIRTHDAY时,我要如何去了后面的时间呢?代码写那里?
sunway0112 2011-03-30
  • 打赏
  • 举报
回复
你的意思是把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的



个人建议第一种,因为是时间格式的在你进行各种日期操作都没有问题的
HDAISEN 2011-03-30
  • 打赏
  • 举报
回复
你直接在system里找timer,安装控件,在安装一个label的控件.
打开timer写入代码!
procedure Tform1.Timer1timer(sender Object);
begin
label1.caption := datetimetostr(now);
end;
end.
gxgyj 2011-03-30
  • 打赏
  • 举报
回复
发现字段的值总是: 1980-03-21 00:00:00 这样类型 的,我想把后面的时间:00:00:00全部去了,只存一个日期1980-03-21

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
人家数据库DateTime字段类型,存储的数据就是以这种方法来显示的,再说这个数据库中的数据显示,对用户是不可见的,你只需要在需要显示的地方进行格式化显示就行了FormatDateTime
shijies 2011-03-30
  • 打赏
  • 举报
回复
数据表里用date类型,你用的是什么数据库?有没有date类型?
九死一生 2011-03-30
  • 打赏
  • 举报
回复
楼上说的对

数据库里显示 总是有时分秒的
控件有个kind,你可以设置成日期形式的,存的时候自然还得用datetimepicker.date只存日期

也可以在数据库里存字符串形式的 datetostr(Date) 和strtodate(xx)进行转换
混世罗汉 2011-03-29
  • 打赏
  • 举报
回复
decodetime 和 encodetime ??日期控件的属性?
amnoone 2011-03-29
  • 打赏
  • 举报
回复
查查 decodetime 和 encodetime 记不清了。用这个。
混世罗汉 2011-03-28
  • 打赏
  • 举报
回复
2楼的介绍中,提到:在程序上,字段编辑器可以设置其属性DisplayFormat为yyyy-MM-dd

请问:属性DisplayFormat 如何找到,我怎么没有看到?
hongss 2011-03-28
  • 打赏
  • 举报
回复
这个只需要你自己控制格式就可以了
混世罗汉 2011-03-28
  • 打赏
  • 举报
回复
1楼的办法试过了,没用的,存到表里时,还是有 0:0:0的
chenzhuo 2011-03-28
  • 打赏
  • 举报
回复
不要去纠结数据库存储的方式.只要在你需要显示的地方格式化一下就行了.
例如想在数据库里显示select convert(char(10,getdate(),120)

在程序上,字段编辑器可以设置其属性DisplayFormat为yyyy-MM-dd

代码中可以写 Edit1.Text := FormatDateTime('yyyy-MM-dd',Now);
sharebei 2011-03-28
  • 打赏
  • 举报
回复

formatdatetime('yyyy-mm-dd', memberbirthday.Date);//string类型
混世罗汉 2011-03-28
  • 打赏
  • 举报
回复

hongss 2011-03-28
  • 打赏
  • 举报
回复
你的字段属性的格式是什么?看看你是否设置了你需要的

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧