我试图在两个日期之间从数据库中检索数据,但是它向我展示了将数据类型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");
}
答案 0 :(得分:1)
首先,将数据库表的列的数据类型从nvarchar更改为datetime会更好,因为在这种情况下,您可以将.net datetime直接存储到表的列中,也可以将其检索到您的日期时间变量。或者,您可以将列更改为varchar,因为它比nvarchar占用更多的内存空间,然后可以将datetime值存储为字符串,并且在检索时可以转换为所需的格式net。您还可以使用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());
答案 1 :(得分:0)
如果我正确,Text
和TextBox1
的{{1}}属性用于创建具有日期时间条件的SQL查询。如果是这样,在转换为字符串时,请使用以下格式说明符:TextBox1