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()
我正在尝试创建一个 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()