cha*_*ind 3 c# string comparison datetime
我正在从sql数据读取器读取日期值到这样的字符串数据类型变量.
electionPosDate = Convert.ToDateTime(reader["elecPODate"]).ToString("dd/MM/yyyy");
Run Code Online (Sandbox Code Playgroud)
如何在if条件下将其与当前系统日期进行比较?
if(electionPosDate==_____?)
{
}
Run Code Online (Sandbox Code Playgroud)
既然electionPosDate是a string,而不是a DateTime,你需要比较它;
if(electionPosDate == DateTime.Now.ToString("dd/MM/yyyy"))
Run Code Online (Sandbox Code Playgroud)
但更重要的是,我觉得你做错了什么.如果已经键入了elecPODate列,则可以使用方法将值作为a .在您的情况下,您正在解析您的到之后,您再次将其转换为.这完全没必要.您应始终选择适合您的数据类型的最佳列类型. datetimeSqlDataReader.GetDateTimeDateTimestringDateTimestring
例如,如果此elecPODate列是第一列或您的阅读器,则可以使用;
DateTime electionPosDate = reader.GetDateTime(0);
Run Code Online (Sandbox Code Playgroud)
并比较一下;
if(electionPosDate.Date == DateTime.Now.Date)
Run Code Online (Sandbox Code Playgroud)
请阅读:糟糕的习惯:选择错误的数据类型
使用Date属性DateTime,如果您只想检查日期部分,以及获取当前日期DateTime.Now,但仅限日期部分使用DateTime.Now.Date:
DateTime electionPosDate = Convert.ToDateTime(reader["elecPODate"]);
if(electionPosDate.Date ==DateTime.Now.Date)
{
}
Run Code Online (Sandbox Code Playgroud)
有关Date和DateTime.Now的信息,请参阅MSDN文档