我正在尝试创建一个SQL查询来选择时间戳小于NOW()但比去年9月更大的记录,但我不想通过输入类似的东西来指定年份:
date > '01/09/2014'
如果我今天要运行查询,它应该给我记录:
2014年9月至2015年5月(5月,因为它是创建此问题时的月份)
如果我明年运行它应该给我记录 2015年9月至2016年5月(5月,因为它是创建此问题时的月份)
答案 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()