StrToTime转换成的是DateTime?

sufu 2002-06-01 10:53:04

我先用
ParamByName('EndTime').AsTime := StrToTime(EndTime);//比如ndTime:=12:22:00
来输入一个时间到access数据库中的一个表aaa
但是到
ExecSQL;
的时候Delphi告诉我‘invalid floating operation’
我查了一下help,发现function StrToTime(const S: string): TDateTime;
于是把
ParamByName('EndTime').AsTime := StrToTime(EndTime)中的astime改成了value

结果用delphi带的sql explorer查看的时候,发现却是1899-12-30 12:22:00

我想在程序里只显示后面的时间部分,应该怎么办啊?
高手给看一下,谢了!





...全文
491 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lincanwen 2002-06-02
  • 打赏
  • 举报
回复
应该改你数据库中对应时间字段的格式为时间类型的,而不是日期时间型
netlib 2002-06-02
  • 打赏
  • 举报
回复
一般用一个双精度数来表示日期和时间,
小数点前表示日期,小数点后表示时间
0.0表示1989-12-31-00:00:00
所以你只给了它时间,没有给日期,所以显示时就日期就变为1989-12-31了
在就是给数据库中保存时用TDateTime,不要用TDate和TTime;
然后显示的显示时不要用Datetimetostr,
而用格式输出formatDatetime,选择自己想要的函数,具体查一下帮助,很好用,
chenybin 2002-06-02
  • 打赏
  • 举报
回复
帮你顶一下
sufu 2002-06-01
  • 打赏
  • 举报
回复
但是我是在一个dbgrid里面显示的
这怎么用formatDatetime函数啊?
qiandeng 2002-06-01
  • 打赏
  • 举报
回复
帮你更新
luoshumeng 2002-06-01
  • 打赏
  • 举报
回复
你可能用得少了,ASDATETIME的话,如果你后面的时间格式是HH:MM:SS的话,他也会转换成你的格式不用担心他转换成别的格式了,你放心好了!如果你要显示出来的话也可以作一个硬性的格式化
比如说你要在EDIT1中显示日期格为HH:MM:SS的格式,而你现在出现的情况是YYYY-MM-DD HH:MM:SS全显示出来你就FORMAT一下
FormatDatetime('HH:MM:SS',这里是一个标准的日期格式)就可以了!
sufu 2002-06-01
  • 打赏
  • 举报
回复
to:luoshumeng(乡村意外)

我要转化的是Time,不是Datetime
而且我的时间格式肯定是正确的,每个都是如hh:mm:ss这样的,并且都不是当前的时间。

现在的情况是,我如果用ParamByName('EndTime').astime的话,delphi会说我的程序‘invalid floating
point operation’

如果我用ParamByName('EndTime').value的话,delphi会自动把1899-12-30给加上,结果access中的记录变成了如:1899-12-30 hh:mm:ss这样的形式

我只想要后面的hh:mm:ss而已
有没有好的方法?
luoshumeng 2002-06-01
  • 打赏
  • 举报
回复
首先你要保证你的日期格式是正确的,你可在转换之前做一个格式化!
之后就可以用strtodatetime转化了。
前面也可以用ASDATETIME,因为如果是12:02:09的话,那么会自动识别是时间
如果是日期的话就可以自动转换成日期的形式了。
ParamByName('EndTime').AsDateTime := StrToDateTime(EndTime);//比如ndTime:=12:22:00
Your EndTime must format
就是当你当初输入的时间一定要做处理!
Formatdatetime('yyyy-mm-dd hh:mm:ss',now());你用这个函数进行相应的处理就不会有问题了!
sufu 2002-06-01
  • 打赏
  • 举报
回复
我要输入的时间不是当前时间,而是从一个字符串中取出来的时间
所以要用StrToTime转换
jianlinlong 2002-06-01
  • 打赏
  • 举报
回复
用Date()不是得到当前日期吗?Time()则可以得到当前时间。

5,930

社区成员

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

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