¿Hay alguna forma fácil de verificar si la parte de tiempo del valor DateTime
es NULL además de verificar que la hora es 0, min es 0 y sec es 0?C# DateTime - ¿Cómo verificar que Time part is NULL?
Gracias.
¿Hay alguna forma fácil de verificar si la parte de tiempo del valor DateTime
es NULL además de verificar que la hora es 0, min es 0 y sec es 0?C# DateTime - ¿Cómo verificar que Time part is NULL?
Gracias.
Éstos son mi toma:
var isTimeNull = myDateTime.Date == myDateTime;
var isTimeNull = myDateTime.TimeOfDay.TotalSeconds == 0;
Y técnicamente, el tiempo no es nulo, simplemente no está establecido.
Para evitar divisiones y problemas de punto flotante de precisión usar:
var isMidnight = myDateTime.TimeOfDay.Ticks == 0;
Me parece muy legible:
var isTimeNull = (myDateTime.TimeOfDay == TimeSpan.Zero);
Gracias - es mejor que ' .ToString.Equals ("00:00:00") ':) –
Esto comprueba si es cero, que es un concepto diferente a algo que es nulo – thelem
DateTime no es compatible con el concepto de nulo para sólo el componente de tiempo. O el objeto DateTime completo es nulo (si usa la versión que admite nulos), o tanto la fecha como la hora no son nulas. Si no especifica el componente de tiempo, se configurará por defecto en 0 (medianoche).
Gracias Anton y déjame intentar esto. – JKK
¿Cómo es eso diferente de ser la medianoche? –
Fui con la lógica myDateTime.TimeOfDay.TotalSeconds. En mi caso, tengo 2 fechas (fecha de inicio y fecha de finalización). En función de si el componente de tiempo está lleno, cambio la función Oracle to_date(). Funciona como un amuleto en todos los casos excepto en uno donde el usuario intenta buscar registros exactamente a la medianoche (12 AM) en ambos valores de fecha. Gracias Anton. – JKK