SQL - 如何 select 过去 5 年的日期以包括最早年份的 1 月 1 日

SQL - How to select date from the past 5 years to include 1st of Jan of the oldest year

我正在尝试 select 过去 5 年(从第一年或最旧年份的 1 月 1 日开始)输入的数据。我构建了下面的查询,但它不是从最旧年份的 1 月 1 日开始的。

SELECT col_name FROM table_name WHERE entry_date > curdate() - interval (dayofmonth(curdate()) - 1) day - interval 5 year

如有任何帮助,我们将不胜感激。

您似乎在使用 MySQL。最简单的方法是:

SELECT col_name
FROM table_name
WHERE YEAR(entry_date) >= YEAR(curdate()) - 5;

请注意,YEAR() 的使用对索引不友好。但是,选择五年的数据可能不会从索引中受益。