You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在EF Core中按时间范围过滤数据并计算总和?

按日期范围汇总数据的实现方法

针对你的表结构,要计算指定日期范围内的value总和,分两种场景给出SQL实现:

1. 按完整年份范围汇总(如2014年至2016年所有数据)

直接通过year字段筛选年份区间,再求和:

SELECT SUM(value) AS total_value
FROM your_table_name
WHERE year BETWEEN 2014 AND 2016;

替换your_table_name为你的实际表名即可。

2. 精确到月份的范围汇总(如2014年11月至2016年7月)

如果需要更精细的月份范围判断,有两种写法:

写法一:分区间逻辑判断

SELECT SUM(value) AS total_value
FROM your_table_name
WHERE 
    (year = 2014 AND month >= 11)
    OR year = 2015
    OR (year = 2016 AND month <= 7);

写法二:将年份和月份转换为日期后比较

利用数据库的日期函数组合year和month为标准日期,再用BETWEEN筛选:

  • MySQL/MariaDB:
SELECT SUM(value) AS total_value
FROM your_table_name
WHERE STR_TO_DATE(CONCAT(year, '-', month, '-01'), '%Y-%m-%d') 
      BETWEEN '2014-11-01' AND '2016-07-01';
  • PostgreSQL:
SELECT SUM(value) AS total_value
FROM your_table_name
WHERE TO_DATE(CONCAT(year, '-', month), '%Y-%m') 
      BETWEEN '2014-11-01' AND '2016-07-01';
  • SQL Server:
SELECT SUM(value) AS total_value
FROM your_table_name
WHERE CAST(CONCAT(year, '-', month, '-01') AS DATE) 
      BETWEEN '2014-11-01' AND '2016-07-01';

内容的提问来源于stack exchange,提问作者Irakli925

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 00:54:18