IF ISNULL([Date And Time]) THEN
ELSEIF DATEPART("hour",[Date And Time]) >= 7 AND DATEPART("hour",[Date And Time]) < 19
DATEPART('hour') returns the hour number in the day, so your original calc was using numbers like 1900 (a 24h clock time) when it really needed to use just 19. Also the additional condition for Night wasn't necessary because you already had the condition for day established. In the above calc I just added another condition to test if Null.
Thanks! Both calculations work and I really appreciate the explanations.