2011-09-09 51 views

回答

14

这里是我的需要:

var isTimeNull = myDateTime.Date == myDateTime; 
var isTimeNull = myDateTime.TimeOfDay.TotalSeconds == 0; 

,技术上,时间不为空,它只是没有设置。

+0

谢谢安东,让我试试这个。 – JKK

+5

与午夜有什么不同? –

+0

我用myDateTime.TimeOfDay.TotalSeconds逻辑去了。就我而言,我有两个日期(开始日期和结束日期)。根据时间组件是否填满,我更改Oracle to_date()函数。它在所有情况下都很有魅力,除了用户试图在两个日期值的午夜(上午12点)准确搜索记录的情况。谢谢安东。 – JKK

1

为了避免分裂和浮点精度问题使用:

var isMidnight = myDateTime.TimeOfDay.Ticks == 0; 
13

我觉得这是非常具有可读性:

var isTimeNull = (myDateTime.TimeOfDay == TimeSpan.Zero); 
+0

谢谢 - 比' .ToString.Equals(“00:00:00”)':) –

+0

这将检查它是否为零,这是一个与空值不同的概念 – thelem

0

的DateTime不支持空的概念,只是时间组件。整个DateTime对象都是null(如果使用可空的版本),或者日期和时间都非空。如果您不指定时间组件,它将默认为0(午夜)。

相关问题