如何在字符串运算符的帮助下比较存储在字符串中的两个日期

本文关键字:字符串 两个 日期 比较 运算符 帮助 存储 | 更新日期: 2023-09-27 17:58:34

我想在今天检查到期日,以便用户登录这是我的代码

string today = DateTime.Today.ToString("yyyy-MM-dd");
command = new SqlCommand("select * from CompanyRegistered where Comp_Id=" + CompanyRegId, connection);
SqlDataReader dr = command.ExecuteReader();
dr.Read();
DateTime TheDate = dr.GetDateTime(5);

string strDate = TheDate.ToString("yyyy-MM-dd");
//string up=    Convert.ToDateTime(MyReader["AccountExpiry"]).ToString("yyyy-MM-dd");
int result = today.CompareTo(strDate);
if (result > 0)
{
}

如何在字符串运算符的帮助下比较存储在字符串中的两个日期

DateTime TheDate = dr.GetDateTime(5);

是指您的值以DateTime的形式存储在数据库中。

请不要将其转换为字符串。改为比较DateTime值:

DateTime theDate = dr.GetDateTime(5);
DateTime today = DateTime.Today;
if (today > theDate)
{
    ...
}

不要。只对需要为文本的内容使用string,例如要显示日期时。

你已经有了你想要的值作为正确的DateTime,所以你可以比较它们:

using(SqlDataReader dr = command.ExecuteReader()) 
{
  if(dr.Read() && !dr.IsDbNull(5)) 
  {
    DateTime userExpiryDate = dr.GetDateTime(5);  
    if (userExpiryDate > DateTime.Today)
    {
      // Do something
    }
  }
}

附带说明:添加一些错误处理-您可能不会得到任何记录或null值。此外,请检查using-许多SQL类(如SqlConnection SqlDataReader)都是IDisposable,因此在使用后需要是Dispose()d。