如果从数据库获取日期,如何获取日期前3天?

时间:2019-05-21 17:54:12

标签: c# asp.net sql-server webforms

我有一个表格,用户可以在其中填写有关XYZ的信息,包括开始日期和到期日期。单击该按钮时,该信息将保存在数据库中。现在我需要从到期日起3天之前,并且需要在网络表单ex的标签中显示。到期日期是2012年12月12日,此日期现在保存在数据库中,当用户打开其个人资料时,该日期必须显示到期日期2012年12月12日

我比当前日期早3天,但不知道该日期是否来自数据库,怎么知道?

您可以在lbltest的代码中看到我显示的是当前日期之前的3天 和Label1从数据库获取日期

SqlCommand cmd = new SqlCommand("Select Enddate from moudetails", con);
SqlDataAdapter DA = new SqlDataAdapter(cmd);
DataTable Dt = new DataTable();
DA.Fill(Dt);
if (Dt.Rows.Count > 0)
{
    lbltest.Text = DateTime.Now.AddDays(-3).ToString("dd/MM/yyyy");
    Label1.Text = Dt.Rows[0]["Enddate"].ToString();                
}

4 个答案:

答案 0 :(得分:2)

如果将日期存储为字符串,请尝试使用DateTime.ParseExact方法。然后,您将可以从数据库中检索到的日期中扣除三天。

基于注释,另一个可行的解决方案是将对象强制转换为日期时间:

Label1.Text = (Dt.Rows[0]["Enddate"] as DateTime).ToString()

答案 1 :(得分:0)

我使用ISPain17先生建议的这种方法

 SqlCommand cmd = new SqlCommand("Select Enddate from moudetails", con);
    SqlDataAdapter DA = new SqlDataAdapter(cmd);
    DataTable Dt = new DataTable();
    DA.Fill(Dt);
    if (Dt.Rows.Count > 0)
    {
        string dateString = Dt.Rows[0]["Enddate"].ToString();
        //lbltest.Text = DateTime.Now.AddDays(-3).ToString("dd/MM/yyyy");
        //Label1.Text = Dt.Rows[0]["Enddate"].ToString();
        Label1.Text = DateTime.Parse(dateString).AddDays(-3).ToString();
    }

及其工作:D

答案 2 :(得分:0)

对于该解决方案,我建议在SQL查询级别计算失效日期,然后提取查询结果并按原样显示。

    SqlCommand cmd = new SqlCommand("Select Enddate, DATEADD(day,-3,Enddate) as expiryDate from moudetails", con);
    SqlDataAdapter DA = new SqlDataAdapter(cmd);
    DataTable Dt = new DataTable();
    DA.Fill(Dt);
    if (Dt.Rows.Count > 0)
    {
        lbltest.Text = Dt.Rows[0]["expiryDate"].ToString();
        Label1.Text = Dt.Rows[0]["Enddate"].ToString();
    }

答案 3 :(得分:0)

您可以使用System.Convert

private void onAddClick(){
        String title = mTitleEdit.getText().toString();
        String body = mBodyEdit.getText().toString();
        Note note = new Note();
        note.setTitle(title);
        note.setBody(body);
        noteDao.insertNote(note);
        notes = noteDao.getNotes();
        adapter = new RecyclerViewAdapter(notes, getApplicationContext());
        mNotesRecycler.setAdapter(adapter);
    }