有个表a:
date1              date2
2004-9-28          2004-9-30我按时间检索,若检索时间是2004-9-28,2004-9-29,2004-9-30都能取到这条记录,也就是说我的查询时间只要是在date1和date2之间,就能取到这条记录。SQL语句怎么写?

解决方案 »

  1.   

    select * from tablename where getdate()>date1 and getdate()<date2
      

  2.   

    select * from a where yourdate>'2004-9-28' and yourdate<'2004-9-30'
      

  3.   

    string r_date;
    string strSql;
    strSql = "SELECT * FROM Table_Name WHERE DATEDIFF(DAY,date1,'" + r_date + "')>=0  AND DATEDIFF(DAY,date2,'" + r_date + "')<=0";
      

  4.   

    日期比较应用DATEDIFF(),用法可查看帮助,直接字符串比较容易出错,

    '2004-9-29'<'2004-10-25' 直接字符串比较前者大,因为9大于1
    datediff(day,'2004-9-29','2004-10-25')则为26,大于0,后者大
      

  5.   

    string strSql = "select * from tablename where getdate() between '"+date1+"' and '"+date2+"'"
      

  6.   

    SELECT *
    FROM [table]
    WHERE ('2004-9-29' BETWEEN data1 AND data2)
    测试通过
      

  7.   

    select * 
    from tablename 
    where datediff(day,date1,Yourdate)<=datediff(day,date1,date2)
      

  8.   

    select * from tablename where datediff(day,date1,date2)>0