我有一个表,中间有一个日期字段类型为SQLTIMESTAMP,现有一个EDIT中显示时间
YYYY-MM-DD,我要比较他们的大小我是这样写的
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.   

    1.对于这种日期型,你可以将它们转换成字符串型再比较:
    if ibable1.fieldbyname('zhrq').asString<=Trim(edit1.text) then
    begin
    ....
    end;
    2.关闭
      for i:=0 to MDIChildCount-1 do
        MDIChildren[i].Close;
    3.水平
      TileMode := tbVertical;
      Tile;
    4.垂直:
      TileMode := tbHorizontal;
      Tile;
      

  2.   

    Returns the number of whole days between two specified TDateTime values.UnitDateUtilsCategorydate/time routinesfunction DaysBetween(const ANow, AThen: TDateTime): Integer;DescriptionCall DaysBetween to obtain the difference, in days, between two TDateTime values.DaysBetween counts only whole days that have elapsed. Thus, DaysBetween reports the difference between Dec 31, 1999 11:59 PM and Jan 1, 2000 11:58 PM as 0 because the difference is one minute short of an entire day.