时间字段不爽爽

wugangcn 2008-10-31 01:36:11
我把数据库的字段设为了时间字段,同时把DateTimePicker设为了短时间yyyy-MM-dd
原来是显示2008-10-20,现在却在DBGrid中显示了2008-10-20 14:20 把分秒都显示出来了,在Access和DateTimePicker都看不到,我也不想看到,但DBGrid中却要显示,不爽爽。
...全文
127 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
wugangcn 2008-11-01
  • 打赏
  • 举报
回复
呵呵,我无法CreatallFields了,现在我各个窗口的ADOQuery和DBGrid都是空的,都是字符串读入。呵呵,这样比较少码字。因为反正时间是Float,所以我干脆我用了Trunc(xx.date)。11楼是我呀,自力更生,做了之后又分享嘛,我觉得那样费时最少,我就是奇怪,明明Access是短日期,但它还是保存了时分秒,真不知这个Microsoft在搞什么,它的短日期只是显示给我看是短日期,暗地里还是记了分钟,DateTimePicker这个xx.date也是,只是显示的是date,传的值依然是整体。以后小心了,当然用字符串没有问题,因为存的时候肯定会有格式转换。
zhao_yong 2008-11-01
  • 打赏
  • 举报
回复
我想最好還是修改Field 的DisplayFormat,也可能在SQL語句中實現,如 select convert(nvarchar(20),getdate(),111)就把有時間的Datetime開轉換為了只有日期的Datetime型.
Harryfin 2008-11-01
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 wugangcn 的回复:]
楼上说的我不明白,什么dataset
我是DBGrid 、DataSource、ADOQuery、DateTimePicker 是不是我的东东用的太原始和低级,没有那OnGetText属性。
我的DBGrid就是个空的,好象这样找不到field,我的Field是读进去的,
[/Quote]
ADOQuery里双击,然后CreateAllFields,就可以看到字段的事件里有OnGetText了
qkhhxkj102 2008-10-31
  • 打赏
  • 举报
回复
你可以在ACCESS里设置一下时间的保存格式的,
设置format 为 Short Date
还不行,我就不信了
qkhhxkj102 2008-10-31
  • 打赏
  • 举报
回复
我还晕11楼是你自己呀,
wugangcn 2008-10-31
  • 打赏
  • 举报
回复
我最想不能,我明明是MyNDate1.date; 为什么还有Time虽然不是实时的而是设计期的。我用11楼OK了,但晕。
wugangcn 2008-10-31
  • 打赏
  • 举报
回复
楼上说的我不明白,什么dataset
我是DBGrid 、DataSource、ADOQuery、DateTimePicker 是不是我的东东用的太原始和低级,没有那OnGetText属性。
我的DBGrid就是个空的,好象这样找不到field,我的Field是读进去的,
InceptKnowledge 2008-10-31
  • 打赏
  • 举报
回复
在DataSet里面OnGetText 可以格式化 数据,你可以试试看!具体用法见F1
wugangcn 2008-10-31
  • 打赏
  • 举报
回复
我Trunc()了,不知道为什么我已经默认了yyyy-MM-dd还要读时间,原来用string时不会读的,现在数据库改为DateTime很为不熟。我9楼按错了,我点错键了,9楼那样还是可以的。
liuhengwinner 2008-10-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 swayi21 的回复:]
BDE
修改Field 的DisplayFormat, 或者OnGetText

SQL
修改SQL格式化一下,不要尾巴就是
[/Quote]

照这种方法去做!
wugangcn 2008-10-31
  • 打赏
  • 举报
回复
ADOQuery1.Edit;
ADOQuery1['dates']:=FormatDateTime('yyyymmdd',MyNDate1.date);
ADOQuery1.Post;
气死了,这样也不行,存的时候好象始终要读入时间,妈的,我在access里看不到,但DBGrid它却总是认识。我在DGGrid里改了存可以,它们搞地下工作,汗。
wugangcn 2008-10-31
  • 打赏
  • 举报
回复
我就这样写的,我好久都没用Format了,
ADOQuery1.Edit;
ADOQuery1['dates']:=MyNDate1.date;
ADOQuery1.Post;
wugangcn 2008-10-31
  • 打赏
  • 举报
回复
好象是和datetimepicker有关,日期是运行中设定的,时间却是设计期的时间,全部一样,换一个datetimepicker 保存就出现这个datetimepicker设计的时间,晕了
我不想动DataSet,这个东东我一点都没手动它
Harryfin 2008-10-31
  • 打赏
  • 举报
回复
哦,也行,用得多cxTreeList忘记可以在DataSet上搞Format了 - -
swayi21 2008-10-31
  • 打赏
  • 举报
回复
BDE
修改Field 的DisplayFormat, 或者OnGetText

SQL
修改SQL格式化一下,不要尾巴就是
Harryfin 2008-10-31
  • 打赏
  • 举报
回复
原因就是你赋初始值的时候赋值了NOW,改成Date。

DBGRID这种比较"落后"的显示控件只能把整个时间显示出来了。
zqdue 2008-10-31
  • 打赏
  • 举报
回复
我想是因为你后台保存的都是时分的,所以显示出来当然也是有时分的啦!
fangsp 2008-10-31
  • 打赏
  • 举报
回复
不可能吧
你传入到数据库里的时间值是什么??
这一点你必须清楚
panrongzeng 2008-10-31
  • 打赏
  • 举报
回复
什么意思?硬是看不懂

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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