DateTime.TryParseExact不会在out参数中返回值吗?

Tan*_*may 2 c# mysql datetime

下面提到的问题已经解决,代码已经改变以反映变化.

我想根据存储在MySQL数据库中的日期检查当前日期.检索当前日期我使用的是nist time服务器,它返回MM-DD-YYYY格式的日期,在我的数据库中,我有以"YYYY-MM-DD"格式存储的值.我想要做的是检查我通过的日期是否等于数据库中的日期,然后做一些事情.

我使用的代码如下:

// The code originally posted has been changed to reflect changes made and it is now working fine (problem solved) a big thank you to all those who replied.
DateTime currentDate = InternetTime();
//DD/MM/YYYY is returned here convert to YYYY/MM/DD
string currentDate = x.ToString("yyyy-MM-dd");
con = new MySqlConnection(conString);
MySqlDataAdapter da = new MySqlDataAdapter();
MySqlCommand cmd = new MySqlCommand("SELECT id AS oDates FROM open_dates WHERE dates=?currentDate",con);
cmd.Parameters.AddWithValue("?currentDate",currentDate);
da.SelectCommand = cmd;
DataTable dt = new DataTable("openDates");
da.Fill(dt);
Run Code Online (Sandbox Code Playgroud)

"dt"表保持为空,因为TryParseExact没有向dateValue写任何内容,所以它仍然是"01-01-0001"或类似的东西.我哪里错了?如果有人能帮助我会很棒.实际上有一个我想到的解决方法; 我可以立即在数据库中存储字符串,然后检查它们,但那会是作弊; 我希望日期有效.我试着搜索可以帮助我的MySQL命令,但我找不到任何东西.

Jon*_*eet 6

你忽略了结果DateTime.TryParseExact.它几乎肯定会返回false,表明它无法解析字符串 - 并且记录DateTime.MinValue了在这种情况下写入out参数.如果解析失败,您肯定应该检查返回值并相应地执行操作.

怀疑你想要一个格式字符串"yyyy-MM-dd".

请注意,您不应该直接在以下行中包含SQL字符串中的日期 - 您应该使用参数化查询.

实际上,您不应该转换x为字符串 - 它已经是一个字符串DateTime,那么为什么要将它转换为字符串然后解析呢?您的注释表明您认为某个DateTime值具有特定的格式 - 它不会比数字更多 - 格式与值如何转换为文本相关,并且不是值本身固有的.