我有一个表,中间有一个日期字段类型为SQLTIMESTAMP,现有一个EDIT中显示时间
我要比较他们的大小我是这样写的
if ibable1.fieldbyname('zhrq').assqltimestamp<=strtosqltimestamp(edit1.text)then
begin
....
end;
为什么出错?说是类型矛盾??后来我改为
if ibable1.fieldbyname('zhrq').asdatetime<=strtodatetime(edit1.text)then
begin
....
end;
说无法将STRING转化为DATE

解决方案 »

  1.   

    用SQLTimeStampToDateTime(const DateTime: TSQLTimeStamp): TDateTime;
    转换为Tdatetime再进行比较,赋值等操作
      

  2.   

    用datetimepicker表示時間,減少轉換錯誤!
      

  3.   

    时间表示在delphi中 其实就是double 类型
    所以应该能够直接比较
    你试试把俩个都转换为时间日期进行比较呢 ?
      

  4.   

    我在数据库中用到日期时间的时,一般都用成是Vchar型的. 这样好处理一些
      

  5.   

    if ibable1.fieldbyname('zhrq').asdatetime<=strtodatetime(edit1.text)then
    begin
    ....
    end;
    应该可以的吧,你的Edit1.text要符合‘2003-6-21’格式。
    或者你换成maskedit,在Editmask里设置时间格式就行了。
      

  6.   

    问题是我现在不能比较比如2003-7-9和2003-7-10我作为字符串不能比较转化成日期类型也不可以我用的是INTERBASE