首先你要保证你的日期格式是正确的,你可在转换之前做一个格式化! 之后就可以用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());你用这个函数进行相应的处理就不会有问题了!
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而已 有没有好的方法?
所以要用StrToTime转换
之后就可以用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());你用这个函数进行相应的处理就不会有问题了!
而且我的时间格式肯定是正确的,每个都是如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而已
有没有好的方法?
比如说你要在EDIT1中显示日期格为HH:MM:SS的格式,而你现在出现的情况是YYYY-MM-DD HH:MM:SS全显示出来你就FORMAT一下
FormatDatetime('HH:MM:SS',这里是一个标准的日期格式)就可以了!
这怎么用formatDatetime函数啊?
小数点前表示日期,小数点后表示时间
0.0表示1989-12-31-00:00:00
所以你只给了它时间,没有给日期,所以显示时就日期就变为1989-12-31了
在就是给数据库中保存时用TDateTime,不要用TDate和TTime;
然后显示的显示时不要用Datetimetostr,
而用格式输出formatDatetime,选择自己想要的函数,具体查一下帮助,很好用,