比较日期字符串和当前日期?

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)

Son*_*nül 7

既然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)

请阅读:糟糕的习惯:选择错误的数据类型


Ehs*_*jad 5

使用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)

有关DateDateTime.Now的信息,请参阅MSDN文档