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

如何在DataGridView中仅加载显示日期、去除默认附带的时间

解决方案

你可以从两个层面实现日期字段不带时间输出,按需选择即可:

方案1:SQL查询层面直接截断时间(推荐)

SQL Server 中可以直接用CAST或者CONVERT函数将datetime/datetime2类型的字段转成DATE类型,自带去掉时间部分的效果,修改你的查询语句即可:

// 仅修改query部分即可
string query = @"select InvoiceID,cName,CAST(datecreated AS DATE) as datecreated,addedby,Status
                from CreateTransmital
                where Status = 'PENDING'
                GROUP BY InvoiceID,cName,CAST(datecreated AS DATE),addedby,Status";

注意:GROUP BY 子句里的datecreated也要同步改成CAST(datecreated AS DATE),否则分组规则还是按带时间的原始值计算,会出现同日期不同时间的行被分成多条的问题。

另外你现有代码有个隐藏问题:xdapter.Fill(xlist, "CreateTransmital")只往DataSet里插入了1张名为CreateTransmital的表,下标是0而不是1,后续绑定取xlist.Tables["CreateTransmital"]或者xlist.Tables[0]更稳妥,避免索引越界报错。

方案2:前端DataGridView层面格式化显示

如果不想修改SQL逻辑,直接给日期列设置显示格式即可,在数据绑定完成后加一行代码:

dataGridView1.DataSource = xlist.Tables[0];
// 给datecreated列设置仅显示日期
dataGridView1.Columns["datecreated"].DefaultCellStyle.Format = "yyyy-MM-dd";

这个方案只是修改显示效果,内存里的日期值还是带时间的,如果你后续要拿这个字段做计算或者传参,推荐用方案1。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 19:48:03