如何将SQL日期转换为DateTime

本文关键字:转换 DateTime 日期 SQL | 更新日期: 2023-09-27 18:14:30

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

如何将SQL日期转换为DateTime

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

要获取它,请使用SqlDataReader.GetDatetime方法

DateTime myDate = myDataReader.GetDateTime(myColumnIndex);

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

c#从阅读器获取日期

DateTime date1;
DateTime.TryParse(reader["datecolumn"], out date1);

插入日期

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);

TryParse在成功强制转换为false时返回true,否则返回false。

VB

从阅读器获取日期

Dim date1 as Date=CType(reader("dateColumn"),Date)

插入日期

 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))

注意:代码是用VB编写的。您可以很容易地编写与上述代码等效的c#。函数名在VB和c#中保持不变。此外,c#中的CType不可用(尽管它与显式强制转换变量相同,例如date1=(DateTime)reader("dateColumn");。我建议使用TryParse,它不会在不成功的解析/强制转换时引发任何异常。

语法

Date.TryParse(reader("dateColumn"), date1)
 string mydate= Convert.ToDateTime(reader["dateColumn"]).ToShortDateString().ToString());

这些代码对我有效。试试这一个