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

如何在保存到SQL Server时去除TimeSpan的秒和毫秒?

解决SQL Server存储TimeSpan时去除秒和毫秒的问题

你当前用的DisplayFormat特性只负责UI显示格式化,不会改变实际存储的TimeSpan值,所以数据库里还是会保留秒和毫秒。要在后端处理并修改存储的数值,得通过属性的getter和setter截断TimeSpan的秒和毫秒部分。

具体实现

把原来的自动属性改成带私有后备字段的属性,在setter里对传入的TimeSpan做处理,只保留小时和分钟,将秒和毫秒清零:

private TimeSpan _time;

[Column(TypeName = "time")]
[DisplayFormat(DataFormatString = @"{0:hh\:mm}")]
public TimeSpan Time
{
    get => _time;
    set
    {
        // 提取小时和分钟,将秒设为0(毫秒自动为0)
        _time = new TimeSpan(value.Hours, value.Minutes, 0);
        
        // 也可以用这种写法:通过取整总分钟数生成新的TimeSpan
        // _time = TimeSpan.FromMinutes(Math.Floor(value.TotalMinutes));
    }
}

效果说明

当给Time属性赋值时(比如前端传入的"12:30"解析成TimeSpan后),setter会自动把秒和毫秒部分清零。最终存到SQL Server里的值会是12:30:00.0000000,也就是仅保留到分钟的有效格式,读取时也不会带多余的秒和毫秒。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 21:10:28