日期:2014-05-18  浏览次数:21081 次

关于时间Null被转化成"0001-01-01 08:00:00"的问题
数据库中Table表的Time字段为可为空的Datetime格式.

当从数据库中查出该表到一个DateSet里.

空的数值全部转化为 "0001-01-01   08:00:00 "

关键的问题是,这种情况只在客户那边出现了.在公司的环境下,DateSet里的该字段仍然为 "Null ".

------解决方案--------------------
用case when吧
Time=case when Time = ' ' then '1973-01-01 ' when Time <> ' ' then Time end
------解决方案--------------------
0001-01-01 08:00:00?是 0001-01-01 00:00:00 吧...8点怎么出来的?

这是 DateTime.MinValue 不是 null...值类型不可为 null...只有可为空泛型类型才可以赋空值...注意 2.0 以上才支持...

如...

Nullable <DateTime> d = null;

or

DateTime? d = null;
------解决方案--------------------
WebService会将DataSet中的值转化成为.NET的类型再发送。转化过程中,就会出现空值被转化为“最小值”(如果该类型不可为空)。你可试试看使用 "Time> "+DateTime.MinValue.ToString()来选择需要的数值。