选择以ms为单位的给定日期之间的所有日期数据

时间:2017-06-04 03:57:01

标签: sql ms-access

我正在尝试从我的表中选择第5个月的所有数据 使用查询

SELECT cout.badgenumber,cout.Checktime FROM CHECKINOUT cout 
inner join userinfo ui on(ui.userid=cout.userid)  
WHERE cout.Checktime between #05/01/2017# and #05/31/2017# 
and ui.badgenumber='1021'

SELECT cout.badgenumber,cout.Checktime FROM CHECKINOUT cout 
inner join userinfo ui on(ui.userid=cout.userid)  
WHERE cout.Checktime>#05/01/2017# and cout.Checktime<=#05/31/2017# 
and ui.badgenumber='1021'

但两者都提供数据,不包括31

的数据

当我尝试在日期之间使用32作为

 SELECT cout.badgenumber,cout.Checktime FROM CHECKINOUT cout 
    inner join userinfo ui on(ui.userid=cout.userid)  
    WHERE cout.Checktime between #05/01/2017# and #05/32/2017# 
    and ui.badgenumber='1021'
日期查询表达式错误中的

语法错误

1 个答案:

答案 0 :(得分:0)

请尝试以下方法......

SELECT cout.badgenumber,
       cout.Checktime
FROM CHECKINOUT cout 
INNER JOIN userinfo ui ON ( ui.userid = cout.userid )
WHERE MONTH( cout.Checktime ) = 5
  AND ui.badgenumber = '1021'

此答案使用MONTH()函数从传递给它的日期中提取月份的数字表示,并将其与5May的数字表示)进行比较。

有关MONTH()功能的详细信息,请阅读https://support.office.com/en-us/article/Month-Function-78182042-7bf0-46e9-829e-c7012f773fc5

如果您有任何问题或意见,请随时发表评论。