我正在尝试抽象查询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'));
如何修改此查询以便LAST_DAY函数生成当天的最后一个时间或保留给定的时间?
答案 0 :(得分:3)
如何更改逻辑以忽略时间?
SELECT *
FROM subscriptions
WHERE `modified_at` >= '2014-12-01' AND
`modified_at` < date_add('2014-12-01', interval 1 month)
这不需要last_day()
。
答案 1 :(得分:0)
使用ADDTIME(expr1,expr2); 像这样:
ADDTIME(LAST_DAY('2011-02-05 23:59:59'), '23:59:59')