在一个表中有一个时间类型的列,我现在指定一个日期,然后从表中查询在这个日期(不考虑年)的前后15天也就总共一个月的范围内的数据,特殊的是要每一年的这个时段,也就是将所有年份的这个时段的记录找出来,然后找出来的数据按日期的升序排列。谢谢各位,帮帮忙了,很急!!

解决方案 »

  1.   

    try:sql="select * from table1 where datepart(dayofyear,yourdatefield) between " & datepart(dayofyear,givendate)-15 & " and "& datepart(dayofyear,givendate) +15
      

  2.   

    sql="select * from table1 where datepart(dayofyear,yourdatefield) between " & datepart(dayofyear,givendate)-15 & " and "& datepart(dayofyear,givendate) +15 &" order by yourdatefield asc"
      

  3.   

    你Test 一下SELECT *
      FROM TABLE
     WHERE SUBSTR(TO_CHAR(TIME+15,'YYYYMMDD'),5,4)>SUBSTR(TO_CHAR(TIME,'YYYYMMDD'),5,4)
       AND SUBSTR(TO_CHAR(TIME-15,'YYYYMMDD'),5,4)<SUBSTR(TO_CHAR(TIME,'YYYYMMDD'),5,4)
     ORDER BY TIME DESC;
      

  4.   

    sql="select * from 你的表 where datepart(dayofyear,日期字段) between " & datepart(dayofyear,日期字段)-15 & " and "& datepart(dayofyear,日期字段) +15 &" order by 日期字段 asc"
      

  5.   

    SQL数据库可以按上面的方法,Access如下试试:select *
    from tb
    where format(dates,"mm-dd") 
          between format(datediff("d",15,#11/10/2004#),"mm-dd") 
          and format(dateadd("d",15,#11/10/2004#),"mm-dd")
    order by dates其中:tb是表名,dates是你日期字段名称
      

  6.   

    "select * From " & strTable & " Where Format([date], 'mm-dd')  Between Format(DateDiff('y', 15," & date1.Value & "), 'mm-dd') and format(dateadd('y',15," & date1.Value & "),'mm-dd') order by [date]"  这是我的语句,比如我给了一个2005年7月15日,找出来的是从5月20号以后开始到6月20号以前,怎么会这样,帮我看看了,谢谢!
      

  7.   

    你要查询什么?dateadd的参数中用y?
      

  8.   

    你试试
    Print Format(DateDiff('y', 15," & date1.Value & ")
    看看是不是你要的日子
      

  9.   

    哦,试试:
    "select * From " & strTable & " Where Format([date], 'mm-dd')  Between Format(DateDiff('y', 15,#" & date1.Value & "#), 'mm-dd') and format(dateadd('y',15,#" & date1.Value & "#),'mm-dd') order by [date]"