数据库里面有两个字段,OPEN_FROM(门店开始营业时间),OPEN_TO(门店结束营业时间),都是datetime类型(ORACLE数据库)我在前台能够获取到用户选取的小时和分钟,需要比较用户选取的时间是否在当天的营业时间里面。。如果不在返回该店的营业时间。即OPEN_FROM和OPEN_TO的hh24-mi-ss部分请问该怎么做好???
有没有办法用sql语句做到???求解!!!谢谢!!!

解决方案 »

  1.   

    判断时间,选取的时间就像这样吗?2011-2-10 14:55:55?如果只是要判断这个时间是不是在OPEN_FROM和OPEN_TO之中,只需要在SQL语句的条件里加上WHERE youtime BETWEEN OPEN_FROM AND OPEN_TO
    不就行了,是不是这样呢?
      

  2.   

    sql datediff
    c# TimeSppan ts=dt1-dt;
    或DateTime.Comparse
      

  3.   

    private string DateDiff(DateTime DateTime1, DateTime DateTime2) 
           { 
               string dateDiff = null; 
                
               TimeSpan ts1 = new TimeSpan(DateTime1.Ticks); 
               TimeSpan ts2 = new TimeSpan(DateTime2.Ticks); 
               TimeSpan ts = ts1.Subtract(ts2).Duration(); 
               dateDiff = ts.Days.ToString()+"天" 
                   + ts.Hours.ToString()+"小时" 
                   + ts.Minutes.ToString()+"分钟" 
                   + ts.Seconds.ToString()+"秒"; 
                
               return dateDiff; 
           }
      

  4.   


    不是,只要判断用户的小时和分钟就好了。。
    判断小时分钟是不是在这两个字段里面(营业时间)
    营业时间都是08:30——20-30这种格式,当然是这两个字段的hh24-mi部分啦!
      

  5.   


    关键是这两个datetime类型的参数不好弄啊。。
    我只能获取用户选择的小时和分钟,而new Datetime类型需要比两个参数多的实参。。
      

  6.   

    你这两个字段的设计就有问题,既然只是时间值何必用datetime类型...只需要一个int存由午夜0时开始的秒数即可...既省空间又容易处理...
      

  7.   

    时间值在.NET中有专门的类型TimeSpan...你可以根据你需要的精度在整型数和TimeSpan之间很容易地转换,而TimeSpan又可以很容易地与DateTime做各种运算...就算是在数据库里用SQL处理,用整型数处理也容易地多...记住,做老大的说的未必就对...
      

  8.   

    OPEN_FROM 这两个字段看做总的分钟数WHERE youtime BETWEEN OPEN_FROM>ww AND OPEN_TO<ww  --ww:用户选取的时间 的总分钟数在这之间 就对了,具体这么得出总分钟数 不要我说了吧?
      

  9.   


    问题解决了。。主要用到了DateTime和TimeSpan类型之间的转换,以及TimeSpan函数的CompareTo()函数。。还有就是DateTime类型的ToString()函数格式化返回的时间就基本上弄好了。。                    //门店开始营业时间必须小于或者等于用户取车时间,并且
                        //门店结束营业时间必须大于或者等于用户取车时间
                        if (tsStar.CompareTo(tsTakeCarTime) < 1 && tsEnd.CompareTo(tsTakeCarTime) > -1)
                        {
                            Response.Write("true");
                        }
                        else 
                        {
                            //用户选取时间没有在对应网点营业时间内,返回门店营业时间,并提示。
                            Response.Write("false_" + new DateTime(tsStar.Ticks).ToString("HH:mm") + "-" + new DateTime(tsEnd.Ticks).ToString("HH:mm"));
                        }