我尝试在MySQL级别抽象查询一个月的数据,而不必实现一系列条件来确定给定年份中给定月份的最后一天。LAST_DAY()似乎是答案,但它似乎只返回日期,而不是提供的时间。

SELECT LAST_DAY('2011-02-05 23:59:59');

回报
2011-02-28

当我试图在查询中使用它时,我将丢失从该月最后一天起的所有条目,因为没有时间,日期值将不被接受。
SELECT * FROM subscriptions
WHERE (`modified_at` BETWEEN '2014-12-01 00:00:01' AND LAST_DAY('2014-12-01 23:59:59'));

如何修改此查询,以便“最后一天”函数生成一天中的最后一个时间或保留给定的时间?

最佳答案

把逻辑改成忽略时间怎么样?

SELECT *
FROM subscriptions
WHERE `modified_at` >= '2014-12-01' AND
      `modified_at` < date_add('2014-12-01', interval 1 month)

这不需要last_day()

关于php - MySQL查询,日期范围正好是1个月,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32598806/

10-10 08:54
查看更多