SELECT * FROM my_table
WHERE some_datetime_column > DATE_ADD(NOW(), INTERVAL -1 MONTH);
另外,如果要获取当前月份/年份,请尝试以下操作:
SELECT MONTH(NOW()), YEAR(NOW())
演示 更新 试试这个:
--here you specify the day of the month you want
SELECT @days := 26 - DAY(NOW());
SELECT @startDate := DATE_ADD(CAST(NOW() AS DATE), INTERVAL @days DAY),
@endDate := DATE_ADD(DATE_ADD(CAST(NOW() AS DATE), INTERVAL @days DAY), INTERVAL -1 MONTH)
另一个演示 然后你可以像这样使用它:
SELECT * FROM t
WHERE date_column BETWEEN @startDate AND @endDate
5条答案
按热度按时间piztneat1#
使用now()和last month(date\u sub(now(),interval 1 month))在下面进行尝试:
fsi0uk1n2#
您可以使用过程来代替原始查询,它将根据您提供的日期动态创建日期。
分隔符$$
--调用get\u sum(15)--动态传递日期
删除过程(如果存在)获取\u和$$
分隔符;
分隔符$$
--创建过程“get\u sum”
create definer='root'@'localhost'过程get\u sum(在天smallint中)begin
声明当前月份日期时间;申报上月日期时间;
选择str \u to \u date(concat(year(now()),'-',month(now()),'-',day),'%y-%m-%d')到当前\u month;
选择日期子项(当前月份,间隔1个月)到上个月份;
选择总和(
amount
)从员工那里(date
上个月和本月之间)和status
='挂起';结束$$
分隔符;
c3frrgcw3#
如果您想查询上月的数据,使用这样的查询就足够了:
另外,如果要获取当前月份/年份,请尝试以下操作:
演示
更新
试试这个:
另一个演示
然后你可以像这样使用它:
bmp9r5qi4#
获取当前月份使用
获取当前年度使用
但你不需要这些
用这个-
使用curdate()获取当前日期。
要获得与上月相同的日期,请使用:
截至2018年9月25日
输出:
上月
输出:
chhqkbe15#
以下是如何构建所需日期:
并在查询中使用以上内容: