我在重申一下:   1我在数据库中有 10个人的生日:  1978-12-02
                                    1980-11-22
                                   1981-12-15
                                    1976-11-30
                                     1977-11-12
                                     .....
    我想找出近半个月的过生日人的记录!
         结果是:
                         1978-12-02
                         1976-11-30
       只要生日在 11月30日 到12月14日都能提取出来
     
    你们提的建议 都不能解决实际问题,解决的人多加分,其他人也加分
  目前共150分,恳求帮助!!!!
这一贴连同
http://expert.csdn.net/Expert/topic/1215/1215350.xml?temp=3.852481E-02

共150分

解决方案 »

  1.   

    SELECT *
    FROM table
    where datediff("d" , "2002-11-29","2002-" & month(birthday) & "-" & day(birthday))<15 and
      datediff("d" , "2002-11-29","2002-" & month(birthday) & "-" & day(birthday))>0
      

  2.   

    呵呵,是我把问题想简单了,跨年度的时候比较难处理,比如说1980-12-30或1981-01-01之类的日期,这时就需要作些处理。下面的方法不一定是最好的,但我测试了一下还是能通过的。你可以再多做些数据测试一下:Option ExplicitPrivate Sub Form_Load()
        Form1.AutoRedraw = True
        Dim Date1 As Date, Date2 As Date
        Dim strDate1 As String, strDate2 As String
        Dim strYear1 As String, strYear2 As String, strYear As String
        Date1 = DateAdd("d", -15, Date)
        Date2 = DateAdd("d", 15, Date)
        strDate1 = Format(Date1, "mmdd")
        strDate2 = Format(Date2, "mmdd")
        strYear1 = Format(Date1, "yyyy")
        strYear2 = Format(Date2, "yyyy")
        strYear = Format(Date, "yyyy")
        
        Dim conn As New ADODB.Connection
        Dim rs As New ADODB.Recordset
        Dim strSQL As String
        conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\abc.mdb;"
        conn.Open
        If strYear1 < strYear Or strYear2 > strYear Then
        '如果此条件符合则说明当前日期的前后15天是跨年度的
            strSQL = "select * from [Table1] where Format([birthday],'mmdd') between " & strDate1 & _
                " and 1231 or Format([birthday],'mmdd') between 0101 and " & strDate2
        Else
            strSQL = "select * from [Table1] where Format([birthday],'mmdd') between " & strDate1 & _
                " and " & strDate2
        End If
        rs.Open strSQL, conn, adOpenDynamic, adLockPessimistic
        Do While Not rs.EOF
            Print rs("birthday").Value
            rs.MoveNext
        Loop
    End Sub
      

  3.   

    zqfleaf(啊风)的代码没有错,但同样解决不了跨年度的问题。
      

  4.   

    hycao(海草)的解答令人满意!其它人也有分
      

  5.   

    hycao(海草)的解答是前后15天,我要的今后15天而已