在表中:
    有字段  code   date         time       等等字段
            01     2003-12-20   15:30:20
            02     2003-12-20   15:30:25
            …………………………………………
            0123    2003-12-22   12:40:30
            0128    2003-12-22   12:41:25    现在要求按照一段时间进行统计:
   我选择日期和时间  从
    开始日期:2003-12-20  开始时间:15:31:00
    结束日期:2003-12-22  结束时间:12:41:00
  那么 我只能提02和0123的记录
依次类推
我的意思就是 只限制开始日期的时间  和结束日期的时间  中间不管时间
只管日期。 sql那样实现???????????
   

解决方案 »

  1.   

    这样写肯定是错误的
    select distinct code from 表 where date>=开始日期 and time>=开始时间  and date<=结束日期 and time<=结束时间在表中  date和time是分开的字段都是datetime类型。我不想把时间和日期都写进去
       用formatdatetime('yyyy-mm-dd',dp.datetime)写的
      

  2.   

    我可以给你说个麻烦的方法的 再看看有没有什么好的办法:
    select distinct code from 表 where ((date>开始日期  and date<结束日期) or (date=开始日期  and and time>=开始时间) or(date=结束日期  and and time>=结束时间))
    我觉得应该有好的办法的就是合并时间和日期的 你看看这么作可以吗 参数可以用变量实现的
      

  3.   

    这样写肯定是错误的
    select distinct code from 表 where date>=开始日期 and time>=开始时间  and date<=结束日期 and time<=结束时间
    ---------------------------------------------------------------------------
    你用的是什么数据库?哪边错了呢?SQL SERVER中应该就是这样,没有问题
      

  4.   

    angle097113(深思不解)的完全可以
      

  5.   

    select code,date, time from table group by time, code, time having time > begintime and time < endtime
      

  6.   

    tudouwujun(土豆) 只是管开始日期的时间限制和结束日期的时间限制。 在开始日期和结束日期内的日期不管时间限制的
      

  7.   

    select distinct code from 表 where ((date > 开始日期 and date < 结束日期) or (date = 开始日期 and 开始日期 <> 结束日期 and time >= 开始时间) or (date = 结束日期 and 开始日期 <> 结束日期 and time >= 结束时间)) or (date=结束日期 and 开始日期 = 结束日期 and time <= 结束时间 and time >= 开始时间)
    前提条件:结束日期 + 结束时间 >= 开始日期 + 开始时间/////////////////////////////////////////////////////
    顺便问一下,楼主的时间,日期怎么得来的(通过什么控件),也许根据不同得来源,Delphi中有更好的方法解决。
      

  8.   

    我以前遇到这样的样事情!这样解决,用两个DateTimePicker,取它们的Date属性,然后第一个手工加上00:00:00 ,
    后一个加上23:59:59 就可以了!去试试!
      

  9.   

    还得注意,在FormShow的时候DateTimepicker1.Time:=0;
    DateTimepicker2.Time:=0;否则也取不到你要的效果!
      

  10.   

    dulei115() formatdatetime('HH:mm:ss',dpt.DateTime);
    Formatdatetime('yyyy-mm-dd',dp1.DateTime);
      

  11.   

    SELECT * 
    FROM 表
    where date + time between '2003-12-20 15:31:00' and '2003-12-22 12:41:00'
      

  12.   

    SELECT * 
    FROM 表
    WHERE date + time BETWEEN '2003-12-20 15:31:00' AND '2003-12-22 12:41:00'
      

  13.   

    或者
    SELECT *
    FROM 表
    WHERE (date + time > '2003-12-20 15:31:00') AND (date + time < '2003-12-22 12:41:00')