我试图从两个日期之间的数据库中检索数据,但它显示错误将数据类型nvarchar转换为日期。这是我的代码:
protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
TextBox1.Text = Calendar1.SelectedDate.ToString("dd/MM/yyyy");
}
protected void Calendar2_SelectionChanged(object sender, EventArgs e)
{
TextBox2.Text = Calendar2.SelectedDate.ToString("dd/MM/yyyy");
}
首先,如果将数据库表的列的数据类型从nvarchar更改为datetime会更好,因为在这种情况下,您可以将.net datetime直接存储到表的列中,并将其检索到datetime变量。或者您可以将列更改为varchar,因为它占用的内存空间比nvarchar多,然后您可以将日期时间值存储为字符串,当您检索时可以转换为所需的格式网络。您还可以使用DateTime.Parse()或ParseExact()从日期文本和时间创建日期时间对象。
string iDate = "2005-05-05";
DateTime oDate = DateTime.Parse(iDate);
MsgBox(oDate.Day & " " & oDate.Month & " " & oDate.Year)
string iString = "2005-05-05 22:12 PM";
DateTime oDate = DateTime.ParseExact(iString, "yyyy-MM-dd HH:mm tt",null);
MessageBox.Show(oDate.ToString());
如果我说得对,Text
和TextBox1
的TextBox1
属性用于创建具有日期时间条件的SQL查询。如果是这样,请在转换为字符串时使用以下格式说明符:"yyyy-MM-dd HH:mm:ss"