在月份字段中错误插入日期sql如何更改
不幸的是,我在sql中插入了一个日期dd-mm-yyyy,但它假设它是mm-dd-yyyy,现在有50多个字段是这样的,我如何更改它?我发现一个异常是无效日期,当时我正在按超过12的日期进行报告。现在我想更改所有插入的字段而不丢失它在月份字段中错误插入日期sql如何更改,sql,c#-4.0,sql-server-2008-r2,date-formatting,Sql,C# 4.0,Sql Server 2008 R2,Date Formatting,不幸的是,我在sql中插入了一个日期dd-mm-yyyy,但它假设它是mm-dd-yyyy,现在有50多个字段是这样的,我如何更改它?我发现一个异常是无效日期,当时我正在按超过12的日期进行报告。现在我想更改所有插入的字段而不丢失它 UPDATE tableName SET dateColumn = MONTH(dateColumn) + "-" + DAY(vdateColumn) + "-" + YEAR(dateColumn) 我希望这项工作,即使我没有测试自己。请使用WHERE子句将更
UPDATE tableName
SET dateColumn = MONTH(dateColumn) + "-" + DAY(vdateColumn) + "-" + YEAR(dateColumn)
我希望这项工作,即使我没有测试自己。请使用WHERE子句将更新仅限于受影响的行
UPDATE yourTable
SET yourDateColumn = Convert(datetime,yourDateColumn,101)
让我知道这是否解决了您的问题。没有任何效果,但最后我通过c控制台手动重置了它
Console.WriteLine("Changing Orderdate");
Console.WriteLine("~~~~~~~~~~~~~~~~~~");
List<string> date = new List<string>();
List<string> no = new List<string>();
int i = 0;
SqlCommand cmd = new SqlCommand("select DATEPART(yyyy,orderdate) as y, DATEPART(mm,orderdate) as m, DATEPART(dd,orderdate) as d, bno from bill", con);
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
date.Add(dr["y"].ToString() + "-" + dr["d"].ToString() + "-" + dr["m"].ToString());
no.Add(dr["bno"].ToString());
}
con.Close();
foreach (var a in date)
{
Console.WriteLine("Inserting: " + date[i] + " With " + no[i]);
SqlCommand cmd2 = new SqlCommand("update bill set orderdate = '" + date[i] + "' where bno = " + no[i], con);
con.Open();
cmd2.ExecuteNonQuery();
con.Close();
i++;
}
Console.WriteLine("Order date changing completed \n\n");
感谢您与我们分享宝贵的时间感谢朋友们您必须告诉我们您使用的是哪种RDBMS,因为日期函数变化很大。我提到了MSSQL 2008 R2所涉及的列的数据类型是什么?请注意,日期存储在数据库中,没有格式。数据库只知道默认格式,并在接受日期或输出日期时应用该格式。您的数据库似乎设置为dd/mm/yyyy格式。您可能需要更改它。实际上,现在数据库格式是yyyy/dd/mm。我不能改变每一行,所以我要问的是,是否有任何方法可以简化这一点。如果字段是datetime值,这将使情况变得更糟。日期没有格式。通过将日期转换为字符串并隐式地将其存储回date字段,您可以将相同的值放回原处,或者将日期和月份交换为所有RowsDate不具有格式的日期。您使用的格式不是固定格式,因此可能会损坏所有值。强制将日期转换为某个字符串,然后使用未指定的格式(实际上是数据库排序规则定义的格式)将其转换回日期。