怎么把nvarchar转换成日期?

时间:2019-03-02 06:39:29

标签: c# asp.net .net

我试图在两个日期之间从数据库中检索数据,但是它向我展示了将数据类型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");            
    }

2 个答案:

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

如果我正确,TextTextBox1的{​​{1}}属性用于创建具有日期时间条件的SQL查询。如果是这样,在转换为字符串时,请使用以下格式说明符:TextBox1