数据库中的表有个char(20)的字段,里面存储的是时间格式,现在我要做的是 让它和17:15比较(语言是jsp)在程序中怎么写?在sql中怎么写?//代码
 for(int j= 0;j<7;j++)
        { 
            Vector v3 = BasePeer.executeQuery("select stationname,shijian,shixiao,weather,fengxiang,fengli,min,max from yb where id=(select max(id) from yb where stationnum='"+r.getValue(1).asString()+"' and shixiao="+((j+1)*24)+")", "zyt"); 
             if(获取到shijian这个字段中的时间部分>自己定义的一个时间值(如17:15))  //这段怎么写啊?            {}
             else
            {            if (v3.size()>0)
            {
                Record r3 = (Record)v3.get(0); 
                Integer intd =0; 
                try { intd = Integer.parseInt(r3.getValue(4).asString().trim());} 
                catch (Exception ex) {} 
                if (intd<0 || intd>50) 
                     intd=0;
                String sx = r3.getValue(3).asString().trim(); 
                if (sx.equals("24") || sx.equals("48") || sx.equals("72") || sx.equals("96") || sx.equals("120") || sx.equals("144") || sx.equals("168")) 
                { 
                    c.add(java.util.Calendar.DAY_OF_YEAR,1); 
%> 

解决方案 »

  1.   

    select convert(varchar(5),getdate(),108)
    /**-----
    12:56(1 行受影响)
    **/
      

  2.   

    SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");//时间格式
    String xtsj = sdf.format(new Date());
    long fcsj = sdf.parse(xtsj).getTime();//比较时间可以转换成毫秒
      

  3.   

    ("select stationname,convert(varchar(5),shijian,108),shixiao,weather,fengxiang,fengli,min,max from yb where id=(select max(id) from yb where stationnum='"+r.getValue(1).asString()+"' and shixiao="+((j+1)*24)+")", "zyt");  
      

  4.   

    sql server 2005 可以用 select datediff(dd,time1,time2)为正则 time2>time1 为空则time2<time1oracle 可以用 直接相减然后trunc()按照格式截取部分 进行判断