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

如何按当前日期(不含时间)过滤DataGridView中的SQL数据?

按当日日期筛选DataGridView数据的解决方案

一、在SQL查询阶段直接过滤(推荐)

因为datetime类型包含时间部分,直接用等于当日日期的条件只会匹配时间为00:00:00的记录,所以要改用范围查询或日期截断的方式:

不同数据库对应写法:

  • MySQL:
-- 简单写法(若日期字段无索引,效率略低)
SELECT * FROM 你的表名 WHERE DATE(日期字段) = CURDATE();

-- 高效写法(可利用字段索引,优先推荐)
SELECT * FROM 你的表名 
WHERE 日期字段 >= CURDATE() 
AND 日期字段 < DATE_ADD(CURDATE(), INTERVAL 1 DAY);
  • SQL Server:
-- 简单写法
SELECT * FROM 你的表名 WHERE CAST(日期字段 AS DATE) = CAST(GETDATE() AS DATE);

-- 高效写法
SELECT * FROM 你的表名 
WHERE 日期字段 >= CAST(GETDATE() AS DATE) 
AND 日期字段 < DATEADD(DAY, 1, CAST(GETDATE() AS DATE));
  • Oracle:
SELECT * FROM 你的表名 WHERE TRUNC(日期字段) = TRUNC(SYSDATE);

二、客户端DataGridView筛选(已加载全部数据时)

如果数据已经全部加载到DataTable中,可通过行筛选实现当日数据过滤:

DateTime todayStart = DateTime.Today;
DateTime todayEnd = todayStart.AddDays(1);
-- 替换成你的DataTable中日期字段的实际名称
dataTable.DefaultView.RowFilter = $"日期字段 >= #{todayStart:yyyy-MM-dd}# AND 日期字段 < #{todayEnd:yyyy-MM-dd}#";
dataGridView1.DataSource = dataTable.DefaultView;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 23:15:35