如何将SQL日期转换为DateTime?

pet*_*ros 10 c# asp.net datetime date sql-server-2008

date我的SQL数据库中有一个类型的列.如何将其转换为C#DateTime然后再转回SQL date

Mat*_*hew 11

sql DATE可以直接转换为.net DateTime,反之亦然.

为了得到它,使用SqlDataReader.GetDatetime方法

DateTime myDate = myDataReader.GetDateTime(myColumnIndex);
Run Code Online (Sandbox Code Playgroud)

设置它,只需将其分配给SqlParameter的值并使用.DateDateTime 的属性


thu*_*ird 9

c#从读者那里获取日期

DateTime date1;
DateTime.TryParse(reader["datecolumn"], out date1);
Run Code Online (Sandbox Code Playgroud)

要插入日期

string date1="2013-12-12"; 
DateTime date2;
DateTime.TryParse(reader["datecolumn"],out date2);

SqlCommand cmd= new SqlCommand("Insert into table (dateColumn) Values(@date2)",connection);
cmd.Parameters.AddWithValue("@date2",date2.Date);
Run Code Online (Sandbox Code Playgroud)

TryParse在成功转换时返回true,否则返回false.

VB

从读者那里得到日期

Dim date1 as Date=CType(reader("dateColumn"),Date)
Run Code Online (Sandbox Code Playgroud)

要插入日期

 Dim date1 as String="2013-12-12" 'you can get this date from an html input of type date

 Dim cmd As New SqlCommand("Insert into table (dateColumn) Values(@date1)",connection)
 cmd.Parameters.AddWithValue("@date1",CType(date1, Date))
Run Code Online (Sandbox Code Playgroud)

注意:代码是用VB编写的.您可以轻松编写上述代码的c#等价物.函数名在VB和c#中保持不变.此外,CType在c#中不可用(尽管它与显式转换变量相同,例如.date1=(DateTime)reader("dateColumn");我建议使用TryParse哪个不会对不成功的解析/转换抛出任何异常.

句法

Date.TryParse(reader("dateColumn"), date1)
Run Code Online (Sandbox Code Playgroud)

  • -1:你应该提供c#例子.如果您觉得vb.net和c#非常相似,为什么不能为提供ac#例子而烦恼? (6认同)
  • @newStackExchangeInstance在投票之前你是否读过我的答案?你甚至知道VB和C#是什么以及它们之间几乎没有什么区别? (2认同)