DateTime 做主键(二)

第四步:

结果呢,随着时间的推移到了1月分,这个查询又出错了.

我进入数据库调整一下,发现是 2008-1-10 和 2008-01-10  的区别.就是说,月份用几位来表示.

(keys["FDate"])为UI取出的数据)

Convert(varchar(19),RealDate,121) = '" + ((DateTime)keys["FDate"]).ToString("yyyy-MM-dd hh:mm:ss") + "'";

搞定.

第五步

进一步检查中,发现到了下午的时候,数据就不对,上午就对.

调试后发现,是12小时和24小时制的区别.

从VS的联机帮助得知:

H 24 小时制的小时。一位数的小时数没有前导零。
HH 24 小时制的小时。一位数的小时数有前导零。

遂改为:

Convert(varchar(19),RealDate,121) = '" + ((DateTime)keys["FDate"]).ToString("yyyy-MM-dd HH:mm:ss") + "'";

搞定.

;