use*_*928 0 php mysql sql timestamp date
我正在尝试创建一个 SQL 查询来选择时间戳小于 NOW() 但大于去年 9 月的记录,但我不想通过放置以下内容来指定年份:
date > '01/09/2014'
Run Code Online (Sandbox Code Playgroud)
如果我今天要运行查询,它应该给我以下记录:
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()
Run Code Online (Sandbox Code Playgroud)
我猜你实际上想要一个稍微复杂一点的条件。如果您在年底(比如 12 月)运行查询,您可能需要当年的 9 月:
where date >= str_to_date(concat(year(now()) - (month(now) < 9), '-09-01'),
'%Y-%m-%d') and
date < now()
Run Code Online (Sandbox Code Playgroud)