我想使用mysql选择任何指定月份之前的所有记录。以下是我的陈述:
SELECT SUM(amount) as allPreviousAmount FROM `fn_table`
WHERE MONTH(transdate) < 1 AND YEAR(transdate) = YEAR(CURRENT_DATE())
transdate
是日期时间数据类型。我有2018年12月的数据。但这并没有选择数据。然后我删除了年份部分,仍然没有选择任何数据。转运日期为2018-12-31 15:59:41。
请把它修好并解释为什么这不起作用。
最佳答案
这样就可以了(假设没有未来的日期):
SELECT SUM(amount) as allPreviousAmount
FROM `fn_table`
WHERE MONTH(transdate) < ? OR YEAR(transdate) < YEAR(CURRENT_DATE())
将
?
替换为所需结果的月份。关于mysql - 如何在MySQL中任何指定月份之前获取所有记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58862900/