我设计一个查询的界面,就是在数据库中的数据比较乱,数据类型为:varchar,有几种的形式:2004-08-11,20040502,040802……哪位哥哥帮帮忙啊!你们就是我的神!

解决方案 »

  1.   

    zhlwyy,你名字叫得就怪,说什么呢?烦!
      

  2.   

    如果能够统一,我还问什么啊,是一个档案馆的原始档案电子化。郁闷ing!
      

  3.   

    CONVERT(varchar(10),你的字段名,120)
      

  4.   

    select * 
    from 表
    where CONVERT(varchar(10),你的字段名,120) = CONVERT(varchar(10),getdate(),120)
      

  5.   

    你可以根据长度将它们分类后统一,如下:
    2004-07-17长度为10
    20040717  长度为8
    040717    长度为6
    可以这样写
    function GetOkStr(DateStr:String):String;
    var
        Len:Integer;
    begin
         Len:=Length(DateStr);
         if Len=10 then 
              Result:=DateStr
         else
         begin
              if Len=8 then
                   Result:=Copy(DateStr,1,4)+'-'+Copy(DateStr,5,2)+'-'+Copy(DateStr,7,2)
              esle
                   Result:='20'+Copy(DateStr,1,2)+'-'+Copy(DateStr,3,2)+'-'+Copy(DateStr,5,2);//希望这个程序不要使用超过100年 ^_^
         end;
    end;
    有了这个函数你就可以诸条记录的过滤。
      

  6.   

    楼上的方法可行
    如果是数据库的格式是日期型的
    你可以试试用这个函数
    ForMatDateTime();
    这个函数的用法帮助文件讲得很清楚!
      

  7.   

    wizardqi(男巫) 的方法可行。