我要做的内容是有两个输入框,begin time  ,end time ,
但是这两个字段可以为空,可以添一个,也可以添两个,我这么写的
SoldDate>=begintime and 
SoldDate<=endtime
begintime ,endtime 我是这么定义的
DateTime beginTime = new DateTime();
DateTime endTime = new DateTime();
这样这两个时间会取当前时间的8/7/2007 12:00:00 AM
这样会取不到当天的记录,
请问各位有什么好的办法吗 ?
谢谢

解决方案 »

  1.   

    DateTime beginTime = new DateTime();
    DateTime endTime = new DateTime();
    你這樣是實例化兩個DateTime 對象。又不是給時間變量賦值
      

  2.   

    用DateDiffDateDiff(dd, begintime, SoldDate) >= 0 And DateDiff(dd, endtime, SoldDate) <= 0
      

  3.   

    谢谢楼上的回答,但是如果begtime为空而endtime不为空和两个都不为空是正确的,但是如果begintime 不为空,endtime为空,或者begintime为空,endtime也是空的话就会查找不到记录,难道必须在外面控制吗。当endtime为空的时候这个查找条件要变吗?
    可以在sql语句中实现吗?
    谢谢
      

  4.   

    hebeijg(一个人努力) ,最好在前台控制一下,為空的時候給個值。
      

  5.   

    我在外面控制了下,给begintime取了最小时间datetime.minvalue 但是他会报这样的错误
    The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.  
    下面是sql语句
    select *
     from  DonationPrice 
    where  DateDiff(dd, '1/1/0001 12:00:00 AM', SoldDate) >= 0 And DateDiff(dd, '12/31/9999 11:59:59 PM', SoldDate) <= 0
    如果我把日期改为2000就可以,但是改为1500就不可以,请问知道这个是为什么吗?
      

  6.   

    日期超出范圍了。
    使用 datetime 可儲存 January 1, 1753 到 December 31, 9999 之間的日期 (每個數值都需要 8 位元組的儲存空間)。使用 smalldatetime 可儲存 January 1, 1900 到 June 6, 2079 之間的日期 (每個數值都需要 4 位元組的儲存空間)。
      

  7.   

    thank you , the problem is over .