各位大侠好!
我有一个access数据表,包含Date字段(yyyy-mm-dd)和Time字段(hh:mm:ss),每一分钟一条记录。
我想要通过Date字段和Time字段查询“昨天23:01:00至今天的00:00:00时间段”的数据集,请问如何写查询语句。
里面AND和OR的关系太乱了,理不清楚,恳请帮助!

解决方案 »

  1.   

    select *
    from mytable
    where date & ' ' & time between '2009-01-01 23:01:00' and '2009-01-02 00:00:00'
      

  2.   

    非常感谢jhone99的回答!
    但是我还想进一步知道:在我当前的日期用Date函数表示,当前的时次用tempHour变量(integer类型)表示的情况下,上一个时次01分开始到这一个时次00分结束的数据集怎么选取?
    特别是在跨日的时候,即Date-1日23:01:00至Date日00:00:00的数据集怎么选呢?
    这两种情形可不可以不用分情形写代码?
    谢谢大家再次帮助! 
      

  3.   

    tempHour定义为Integer,即:
    如00:00:00时,tempHour则为0,01:00:00时,tempHour则为1
      

  4.   

    用两个变量来做
    tempHourFr
    tempHourTo
      

  5.   


    select * from mytable where datediff('s',date1,date2)>10   '按秒比较两个时间
    select * from mytable where datediff('n',date1,date2)>10   '按分比较
    select * from mytable where datediff('h',date1,date2)>10   '按小时
    select * from mytable where datediff('d',date1,date2)>10   '按天
    select * from mytable where datediff('m',date1,date2)>10   '按月
    select * from mytable where datediff('y',date1,date2)>10   '按年
    上面的10是date2与date1差值,根据这个你自己去构造你想要的好了
      

  6.   

    60条记录就不应该包含下个小时 00 分的记录,所以只要 日期+小时 就可以做条件了(00:00 和 59:59 固定不变)
    SELECT SUM(Value)
      FROM table1
     WHERE date = '2009-03-12'
       AND time >= '23:00:00'
       AND time <= '23:59:59'
      

  7.   


    select sum(fld1),sum(fld2),sum(fld3) from table1 where fld0 = '限制条件' group by '求和的分组条件'
      

  8.   

    Date          Time          uSec          Ta (degC)   Rh ()     Rain ()      WD_10 ()
    2009-3-12 23:01:00 0.141845 14.43681 83.095206 0 313.29018
    2009-3-12 23:02:00 0.141967 14.427035 83.04823 0 270.70803
    2009-3-12 23:03:00 0.143798 14.430277 83.051309 0 280.0735
    2009-3-12 23:04:00 0.145629 14.450902 83.148429 0 264.34034
    ……
    ……
    ……
    2009-3-13 0:00:00         0.151733 14.732611 81.624794 0 295.93085上面的数据就是我数据库AWS_Minute中的部分我希望选取的数据
    大家的方法我一些看不懂,一些不可用,我现在打算分两种情形打开该数据库:
    情形一:跨日期,即Date-1日23:01:00至Date日00:00:00
    select * from AWS_Minute where Date & ' ' &Time between '#" & Date-1 & "# 23:01:00' and '#" & Date & "# 00:00:00'
    情形二:不跨日期
    select * from AWS_Minute where Date & ' ' &Time between '#" & Date & "# & cstr(tempHour-1) & ":01:00" and '#" & Date & "# & cstr(tempHour) & ":00:00"
    这语句肯定有很多语法错误,希望大家指正!
    给大家带来很多麻烦!真是不好意思!
    希望大家对新手菜鸟如我者多多谅解!谢谢大家!
      

  9.   

    dt = 查询开始时间的日期
    tempHour = 查询开始时间的小时
    sql = "SELECT SUM(Value)" & _
    "  FROM table1" & _
    " WHERE date = #" & Format$(dt, "yyyy-mm-dd") & "#" & _
    "   AND time >= #" & Format$(tempHour, "00") & ":00:00#" & _
    "   AND time <= #" & Format$(tempHour, "00") & ":59:59#"