我想在数据库中根据时间字段筛选,我的这个字段格式是:2007-3-1 12:30,我希望能够筛选出该数据库中所有处于8:30到17:30之间的数据,语句应该怎样写呢?

解决方案 »

  1.   

    SELECT *
    FROM 数据表
    WHERE (DATEPART(HOUR, 时间字段) * 100 + DATEPART(MINUTE, 时间字段) >= 830) AND 
          (DATEPART(HOUR, 时间字段) * 100 + DATEPART(MINUTE, 时间字段) < 1730)
      

  2.   

    Select * From TableName 
    Where Convert(Varchar(5), 時間字段, 108) Between '08:30' and '17:30'
      

  3.   

    --建立測試環境
    Create Table TEST
    (ID Int,
     TestDateTime DateTime)
    Insert TEST Select 1, '2007-03-01 10:00:00'
    Union All Select 2, '2007-03-02 18:00:00'
    Union All Select 3, '2007-03-03 17:30:00'
    GO
    --測試
    Select * From TEST 
    Where Convert(Varchar(5), TestDateTime, 108) Between '08:30' and '17:30'
    GO
    --刪除測試環境
    Drop Table TEST
    --結果
    /*
    ID TestDateTime
    1 2007-03-01 10:00:00.000
    3 2007-03-03 17:30:00.000
    */
      

  4.   

    Select * From TableName 
    Where Convert(Varchar(5), 時間字段, 8) Between '08:30' and '17:30'
      

  5.   

    楼主应该先告诉大家你用什么样的数据库,convert是sql server的函数
      

  6.   

    Access的话:
    SELECT *
    FROM 数据表
    WHERE (DATEPART("H", 时间字段) * 100 + DATEPART("N", 时间字段) >= 830) AND 
          (DATEPART("H", 时间字段) * 100 + DATEPART("N", 时间字段) < 1730)
      

  7.   

    WHERE (DATEPART("H", 时间字段) * 100 + DATEPART("N", 时间字段) >= 830) AND 
          (DATEPART("H", 时间字段) * 100 + DATEPART("N", 时间字段) < 1730)