sql语句能用between-and来比较一个date类型的参数么?
请举个例子说明

解决方案 »

  1.   

    在Mysql中,我用过很多次了。
    select * from user where birthday between '1980-01-01' and '1981-01-01';
      

  2.   

    我要传入参数呢?
    我传入了一个date类型的参数!为啥不行啊
      

  3.   

    传入参数也是可以的,只是要注意你前台中传递过去的日期的格式,固定好格式,否则得话会出一些问题。比如‘1988-11-21’和‘1988-2-21’就有可能出问题。
    楼主把要传给SqlServer的语句摘出来看看吧。
      

  4.   

    这种比较至少在 SQLServer, Sybase, DB2和Mysql上时没问题的。 至于传参数, 好像要把参数转换成sql.Date类型的吧。 我也不太记得了, 楼主可以试下。
      

  5.   

    传参数, 好像要把参数转换成sql.Date类型的吧
      

  6.   

    把比较的和传入的参数的日期格式都统一一下即可
    比如都设置成yyyy-MM-dd,这样比较的时候肯定不会出问题
      

  7.   

    我觉得是不可以的,因为在比较时间的时候,数据类型是Date,在数据库插入一条数据时,如果用的是当前时间,那么
    最多也只能是一个精确值,但是不能完全达到极限。如果你在统计的时候,统计的是某一个时间段,那么在用Between and 时候会出现问题。forExample:select * from __table_ where time between '2012-12-17 ' and '2012-12-18',那么你在统计的时候,如果你根据的是小时统计就会有问题我在真实项目中曾经就遇到过这样的问题,LZ可以自己做一个实验
      

  8.   


    建议转换类型后比较。如果传的是字符串,比如在oracle中,用to_date()转换后再用between ... and,肯定是可以比较的