【问题标题】:SQL - How to select date from the past 5 years to include 1st of Jan of the oldest yearSQL - 如何从过去 5 年中选择日期以包括最早年份的 1 月 1 日
【发布时间】:2021-07-06 22:55:45
【问题描述】:

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

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

任何帮助将不胜感激。

【问题讨论】:

  • 用您正在使用的数据库标记您的问题。
  • 我对它进行了测试,它确实是从最古老的一月一日开始的。
  • 谢谢林诺夫!它奏效了

标签: mysql sql select datediff


【解决方案1】:

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

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

请注意,YEAR() 的使用对索引不友好。但是,无论如何,选择价值 5 年的数据可能不会从索引中受益。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    相关资源
    最近更新 更多