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

DataTable转JSON时DateTime格式异常及SQL插入报错的解决方案咨询

解决DataTable转JSON时DateTime格式不兼容SQL Server的问题

将DataTable序列化为JSON时,DateTime字段被转成/Date(1722796200000)/格式,导致写入SQL Server时抛出Conversion failed when converting date and/or time from character string错误。需要把DateTime转成标准ISO格式(如"2024-08-05T00:00:00"),以下是两种可行方案:

方案一:修改现有JavaScriptSerializer序列化逻辑

直接在遍历DataTable列的环节,对DateTime类型字段做格式化处理,转成ISO标准字符串:

修改后的序列化代码:

string JsonData = DataTableToJSONWithJavaScriptSerializer(dt);

public string DataTableToJSONWithJavaScriptSerializer(DataTable table)
{
    List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
    Dictionary<string, object> row;
    foreach (DataRow dr in table.Rows)
    {
        row = new Dictionary<string, object>();
        foreach (DataColumn col in table.Columns)
        {
            // 判断字段类型为DateTime时,转成ISO格式字符串
            if (col.DataType == typeof(DateTime))
            {
                var dateValue = dr[col] as DateTime?;
                row.Add(col.ColumnName, dateValue?.ToString("yyyy-MM-ddTHH:mm:ss") ?? DBNull.Value);
            }
            else
            {
                row.Add(col.ColumnName, dr[col]);
            }
        }
        rows.Add(row);
    }
    System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
    
    return serializer.Serialize(rows);
}

修改后序列化结果:

[{"No":1,"CDate":"2024-08-05T00:00:00"}]

SQL Server可直接解析该格式字符串为DateTime类型。

方案二:改用Newtonsoft.Json(Json.NET)序列化

若允许引入第三方库,Newtonsoft.Json默认会将DateTime序列化为ISO标准格式,代码更简洁:

先安装Newtonsoft.Json NuGet包,再使用以下代码:

using Newtonsoft.Json;

// 直接序列化DataTable
string JsonData = JsonConvert.SerializeObject(dt, Formatting.None);

该方式无需额外处理DateTime字段,序列化结果同样为标准ISO格式,且Newtonsoft.Json的性能与兼容性优于JavaScriptSerializer。

注意事项

  • 若DataTable存在DBNull的DateTime字段,方案一中的?? DBNull.Value可保证空值正确序列化;
  • 方案二中Newtonsoft.Json会自动将DBNull序列化为null,SQL Server可正确识别。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 05:29:55