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

如何将数据库DateTime列值设置为仅保留日期部分,避免自动追加时间

问题核心原因

  • 不管是C#中的DateTime类型还是数据库的DateTime类型,本质都是同时存储日期和时间两个部分,不存在仅包含日期的DateTime值,你理解的“仅保留日期”本质是时间部分为00:00:00的特殊情况
  • 你当前的代码属于冗余操作:先把日期转成字符串再转回日期类型,最终得到的DateTime值依然会携带00:00:00的时间部分,无法实现你的需求

对应解决方案

你可以根据实际需求选择对应处理方式:

场景1:仅需要存入1900年1月1日的等效日期值,允许时间部分为0点

直接赋值即可,不需要做多余的字符串转换操作,代码如下:

orderRow.OrderDateSent = new DateTime(1900, 1, 1);

这个值存入数据库后时间部分会自动为00:00:00,已经是日期维度下1900年1月1日的标准存储格式,不需要额外处理。

场景2:要求数据库层面只存储日期、完全不存储时间部分

修改数据库对应字段的类型,从DateTime改为Date类型,该类型本身仅存储日期,不包含时间信息,赋值代码和场景1一致即可。

场景3:仅需要在前端展示、数据导出等场景只显示日期部分

不需要修改存储逻辑,在展示时对DateTime值做格式化即可,例如C#中可以用orderRow.OrderDateSent.ToString("yyyy/MM/dd")输出仅带日期的字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 06:48:00