将DateTime变量与数据库中的Date变量进行比较

时间:2013-01-05 16:59:24

标签: c# asp.net database date datetime

我正在使用sql server 2008并尝试在用户上次登录的时间早于添加到数据库的最后一条消息的日期时显示通知。

我正在使用asp:panel显示隐藏通知文字,它工作正常,但由于某种原因我无法弄清楚为什么我使用的Compare方法没有返回预期的结果。

例如,当我将用户登录设置为01/05/2013并且数据库中的最新日期为01/04/2013时,我希望结果大于零int并转义if条件。不幸的是,这种情况不会发生,并且该方法总是进入if条件。

我认为这可能与castingDateDateTime的{​​{1}}有关;想法,拜托?

DateTime userEntry = new DateTime(2012, 01, 05);
DateTime lastMsg = new DateTime();
lastMsg = Convert.ToDateTime(ds.Tables[0].Rows[0]["Date"]);
int compared = DateTime.Compare(userEntry, lastMsg);
if (compared < 0) { notification.Visible = true; }

1 个答案:

答案 0 :(得分:0)

您提到您正在尝试比较“01/05/2013”​​,但代码正在生成2012日期:

DateTime userEntry = new DateTime(2012, 01, 05); // 2012 date

我怀疑你的意思是:

DateTime userEntry = new DateTime(2013, 01, 05); // 2013 date