计算天数

本文关键字:计算 | 更新日期: 2023-09-27 18:08:02

我想从我的SQL数据库中的字段'投诉日期'计算天数。在此字段中存储用户注册投诉的日期。我希望从现在起20天或更长时间内看到投诉。

是否有其他函数或方法来计算天数?我使用的代码是

cmd = new SqlCommand("select complaintdate from complaintregister where compstatus='Attended & Open'", con);
rd = cmd.ExecuteReader();
if (rd.Read())
{
    string s = rd["complaintdate"].ToString();
}

显示's'

Response.Write(s);

和它以这种格式显示4/5/2011 12:00:00 AM

"

计算天数

从你的问题来看,我不确定你是否想在数据库或代码中进行这种比较。

如果你想在SQL Server中做检查,你可以使用DATEDIFF函数。

如果你想签入代码,你可以使用DateTime.Subtract:

var complaintDate = new DateTime(2011, 9, 1);
var daysSinceComplaint = (int)DateTime.Now.Subtract(complaintDate).TotalDays;
Console.WriteLine(daysSinceComplaint);

这将检索totalDays作为您的complaintDate和今天之间的天数。用您的检索方式替换GetDateFromDatabase():

DateTime complaintDate = GetDateFromDatabase();
int totalDays = (int)(DateTime.Now - complaintDate).TotalDays;
if (totalDays >= 20)
{
    // Perform your actions here. 20+ days have elapsed.
}
编辑:

我添加了以下代码以使用您在编辑中提供的代码。我假设变量cmd, conrd在代码的其他地方声明。

cmd = new SqlCommand("select complaintdate from complaintregister where compstatus='Attended & Open' ", con);`
rd = cmd.ExecuteReader();
if (rd.Read())
{
    string s = rd["complaintdate"].ToString();
}
DateTime complaintDate;
try
{
    complaintDate = Convert.ToDateTime(s);
}
catch
{
    Response.Write("An error occurred while trying to convert the date!");
    return;
}
int totalDays = (int)(DateTime.Now - complaintDate).TotalDays;
if (totalDays >= 20)
{
    // Perform your actions here. 20+ days have elapsed.
}

SQL Server中的另一个解决方案是在表中添加一个计算字段,显示已经过了多少天。如果CompliantDate为Null,将显示Null

ALTER TABLE ComplianceTable ADD
DaysLapsed  AS datediff(dd,CompliantDate,getdate())
GO