我在SQL Server数据库中建立了一张表,某个字段我想设为日期型,于是我用datetime数据类型
我用java操纵SQL语言,对数据库进行查询,在SQL语句中我加入了时间限制。
大家帮我看看我的SQL语句写的有问题没 ?
sql= "SELECT * FROM testbook WHERE 出版时间 >= #" + date1 + "# and 出版时间<= #" + date2 + "#";
我在另一个页面传来的时间参数格式为(也即date1、date2的格式):2000/1/1,我写成这样也有错2000-1-1

解决方案 »

  1.   

    sql= "SELECT * FROM testbook WHERE 出版时间 >= #" + date1 + "# 出版时间 >=  #" + date2 + "#";
    看你语句的意思是查询一端时间内的信息(这个SQL语句好象有点问题)
    如果是的话我有个解决办法:
    将 出版时间 的数据类型设成int 将时间当int输入 例如2000/1/1,写成20000101
    int date1,date2
    然后用 SELECT * FROM testbook WHERE 出版时间 >= date1 and 出版时间 <= date2
      

  2.   

    问题已经解决了
    把sql= "SELECT * FROM testbook WHERE 出版时间 >= #" + date1 + "# 出版时间 >=  #" + date2 + "#";
    改成:
    sql= "SELECT * FROM testbook WHERE 出版时间 >= '" + date1 + "' 出版时间 >=  '" + date2 + "'";
      

  3.   

    你这语句也会成功?
    为什么不用SQL最经典的between?
    sql= "SELECT * FROM testbook WHERE 出版时间 between '" + date1 + "' and '" + date2 + "'";
      

  4.   

    用between和比较符号都可以,不过推荐用比较符号
      

  5.   

    sql= "SELECT * FROM testbook WHERE 出版时间 >= '" + date1 + "' 出版时间 >=  '" + date2 + "'";是不是有逻辑错误啊