用Date()不是得到当前日期吗?Time()则可以得到当前时间。

解决方案 »

  1.   

    我要输入的时间不是当前时间,而是从一个字符串中取出来的时间
    所以要用StrToTime转换
      

  2.   

    首先你要保证你的日期格式是正确的,你可在转换之前做一个格式化!
    之后就可以用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());你用这个函数进行相应的处理就不会有问题了!
      

  3.   

    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而已
    有没有好的方法?
      

  4.   

    你可能用得少了,ASDATETIME的话,如果你后面的时间格式是HH:MM:SS的话,他也会转换成你的格式不用担心他转换成别的格式了,你放心好了!如果你要显示出来的话也可以作一个硬性的格式化
    比如说你要在EDIT1中显示日期格为HH:MM:SS的格式,而你现在出现的情况是YYYY-MM-DD HH:MM:SS全显示出来你就FORMAT一下
    FormatDatetime('HH:MM:SS',这里是一个标准的日期格式)就可以了!
      

  5.   

    但是我是在一个dbgrid里面显示的
    这怎么用formatDatetime函数啊?
      

  6.   

    一般用一个双精度数来表示日期和时间,
    小数点前表示日期,小数点后表示时间
    0.0表示1989-12-31-00:00:00
    所以你只给了它时间,没有给日期,所以显示时就日期就变为1989-12-31了
    在就是给数据库中保存时用TDateTime,不要用TDate和TTime;
    然后显示的显示时不要用Datetimetostr,
    而用格式输出formatDatetime,选择自己想要的函数,具体查一下帮助,很好用,