SELECT *
FROM ST_PPTN_R 
WHERE TM BETWEEN '01/02/1996' AND '12/02/1996'上面的语句为什么不能执行?
语句的目的是想从表ST_PPTN_R中查出TM(时间列)范围在1996-1-2到1996-2-12的数据。

解决方案 »

  1.   

    select * 
    from st_pptn_r
    where tm between convert(datetime,'01/02/1996') and convert(datetime,'12/02/1996')
      

  2.   

    TRY:SELECT * FROM ST_PPTN_R WHERE TM BETWEEN '1996-01-02 00:00:00.000' AND '1996-02-12 23:59:59.999' 
      

  3.   

    SELECT * FROM ST_PPTN_R WHERE 
    convert(nchar(10),TM,120)>='1996-01-02' AND convert(nchar(10),TM,120)<='1996-02-12' 
    或者
    SELECT * FROM ST_PPTN_R WHERE 
    convert(nchar(10),TM,120) between  '1996-01-02' AND convert(nchar(10),TM,120)<='1996-02-12' 
      

  4.   

    date   是日期类型   形如   2003-11-7   15:00:00SELECT * 
    FROM ST_PPTN_R  
    WHERE TM BETWEEN '01/02/1996 00:00:00' AND '12/02/1996 23:59:59' 
      

  5.   

    上面的我都试了,都一错,我用的是Access,是不是该换数据库了。可SQL语句应该是通用的啊
      

  6.   

    上面的我都试了,可是都会报错,我现在用的是Access数据库,是不是数据库的问题?
      

  7.   

    ACCESS 没有convert 函数
     好像是用FORMAT 函数做的 
      

  8.   

    SELECT * 
    FROM ST_PPTN_R  
    WHERE (TM>='01/02/1996' AND Tm<='12/02/1996' )//这个在不行,就到ACCESS版问吧,,
      

  9.   

    SELECT * FROM ST_PPTN_R
     WHERE TM BETWEEN '2007-01-02 00:00:00.000' AND '2007-02-12 23:59:59.998' 可以执行的,我试过了还有:截止日期不可以将毫秒写到999,这样,SQL会取到2007-02-13日的数的,
    SQL是以3个毫秒为单位取最近值的