首页 > 解决方案 > 如何在本月 1 日到上月 17 日之间进行选择

问题描述

我使用此选择查询,但下个月之后,上个月的数据不会出现。

SELECT xxx,xxx,xxx 
FROM lott_user_table 
WHERE MONTH(NOW()) AND DAYOFMONTH(datetime) BETWEEN 17 AND 1

如何修复或获取本月 1 日至上月 17 日之间的数据(不使用 date_sub())?

谢谢(对不起我的英语)

标签: mysqlsql

解决方案


SELECT id,datetime
FROM lott_user_table 
where MONTH(datetime) between MONTH(CURRENT_DATE - INTERVAL 1 MONTH) 
                              and MONTH(CURRENT_DATE)
and (DAYOFMONTH(datetime) > case when MONTH(datetime) = MONTH(CURRENT_DATE - INTERVAL 1 MONTH)  then 
                                     17
                            end
     or DAYOFMONTH(datetime) <= case when MONTH(datetime) = MONTH(CURRENT_DATE)  then 
                                     1
                                end)

这是演示:

演示


推荐阅读