MySQL从去年到现在一个月之间获得了记录

时间:2015-05-21 13:11:49

标签: php mysql sql date timestamp

我正在尝试创建一个SQL查询来选择时间戳小于NOW()但比去年9月更大的记录,但我不想通过输入类似的东西来指定年份:

date > '01/09/2014'

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

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

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

1 个答案:

答案 0 :(得分:4)

您可以构建日期:

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()