计算天数
本文关键字:计算 | 更新日期: 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
, con
和rd
在代码的其他地方声明。
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