我想使用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/

10-09 22:15