我正在使用sql server 2008并尝试在用户上次登录的时间早于添加到数据库的最后一条消息的日期时显示通知。
我正在使用asp:panel
显示隐藏通知文字,它工作正常,但由于某种原因我无法弄清楚为什么我使用的Compare
方法没有返回预期的结果。
例如,当我将用户登录设置为01/05/2013
并且数据库中的最新日期为01/04/2013
时,我希望结果大于零int并转义if条件。不幸的是,这种情况不会发生,并且该方法总是进入if条件。
我认为这可能与casting
从Date
到DateTime
的{{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; }
答案 0 :(得分:0)
您提到您正在尝试比较“01/05/2013”,但代码正在生成2012日期:
DateTime userEntry = new DateTime(2012, 01, 05); // 2012 date
我怀疑你的意思是:
DateTime userEntry = new DateTime(2013, 01, 05); // 2013 date