在sql server中插入ISO日期

时间:2017-06-11 17:46:18

标签: c# sql-server date datetime

当我在c#

中运行以下代码时
string dt = "2017-07-09T17:50:21.000-0500"; 
string date = DateTimeOffset.Parse(dt).DateTime.ToString("yyyy-MM-dd HH:mm");

它将此作为输出

  

2017-07-09 17:50

但是在将数据插入到数据库时,它会增加+5小时并插入

  

2017-07-09 22:50

有人可以帮我把相同的日期(2017-07-09 17:50)插入数据库

更新1

这是我完整的简化代码

DataSet dSet = new DataSet();
DataTable dTable = new DataTable();
dTable.Columns.Add("created_on", typeof(DateTime));

foreach (var item in items)
{
DataRow dRow = dTable.NewRow();
dRow["created_on"] = DateTimeOffset.Parse(item.createdon).DateTime;
//-- in item.createdon i get the date like this "2017-07-09T17:50:21.000-0500";
dSet.Tables[0].Rows.Add(dRow);
}

完成循环后,通过存储过程将数据作为xml发送到数据库进行插入。

在数据库中插入后,行将使用以下日期进行更新

  
    

2017-07-09 22:50

  

1 个答案:

答案 0 :(得分:0)

@dlatikay!根据您的第一条评论,我将数据类型从DateTime更改为字符串并且它有效。

dTable.Columns.Add("created_on", typeof(string));

当数据类型是DateTime时,结果按预期进行,但在插入到sql时,值正在改变。现在,当iam将值作为字符串发送到sql时,它将该字符串转换为DateTime并且它有效。

谢谢大家的回复。