MySQL 获取从现在到去年一个月的记录

MySQL get records between now and a month last year

我正在尝试创建一个 SQL 查询来查询 select 时间戳小于 NOW() 但大于去年 9 月的记录,但我不想通过以下方式指定年份把这样的东西:

date > '01/09/2014'

如果我今天运行查询它应该给我记录来自:

2014 年 9 月至 2015 年 5 月(5 月,因为这是创建此问题时的月份)

如果我 运行 明年它应该给我记录 2015 年 9 月至 2016 年 5 月(5 月,因为这是创建此问题时的月份)

您可以构造日期:

where date >= str_to_date(concat(year(now()) - 1, '-09-01'),
                          '%Y-%m-%d') and
      date < now()

我猜您实际上想要稍微复杂一点的条件。如果您 运行 在年底查询(比如在 12 月),您可能需要当年的 9 月:

where date >= str_to_date(concat(year(now()) - (month(now) < 9), '-09-01'),
                          '%Y-%m-%d') and
      date < now()