转换c#中的日期类型以匹配sql server 2008日期类型

时间:2015-07-18 18:45:38

标签: c# sql

我从应用程序中检索了一个日期并将其存储在DateTime变量中。日期格式为dd / mm / yyyy。

我现在想要在具有此日期的sql server 2008数据库中更新列(具有数据类型日期(yyyy / mm / dd)) 我已经尝试了下面的代码,但它给了我一个例外“字符串未被识别为有效日期时间”。请帮助解决这个问题。

DateTime date = calExpirydate.SelectedDate;
DateTime date1 = DateTime.ParseExact(date.ToString(), "YYYY/MM/DD", CultureInfo.InvariantCulture);

3 个答案:

答案 0 :(得分:4)

如果您使用参数(并且您应该使用参数),则根本不需要转换它。

一个粗略的例子:

DateTime date = DateTime.Now;

SqlCommand command = new SqlCommand();

command.CommandText = "INSERT INTO table (date) VALUES (@date)";   
command.Parameters.Add("@date",SqlDbType.DateTime).Value = date;

我在这里使用SQL Server,但是大多数ADO.NET提供商的概念都是类似的。

答案 1 :(得分:0)

框架中的DateTime变量以一种基本格式存储。它出现的方式只是格式化.ToString。它是说给我你的日期位看起来像这样。 Sql server类似,它理解日期时间变量,无论它如何出现。

如果您将DateTime完全按照它在框架中的方式传递,它将正确保存它。日期和时间不会改变它的显示方式。你的try解析不起作用,因为它无法识别你给它的部分字符串。

您甚至不需要新的日期时间变量来按照您想要的方式查看它。即使你成功了,你也会有相同的日期时间变量。

答案 2 :(得分:-1)

yyyy / MM / dd应该是正确的

DateTime string format