数据库中的DateTime null

时间:2017-03-09 02:33:41

标签: c# datetime

正如我上面的标题,我的数据库中有一个DateTime数据类型的表,它是空值。我得到了我正在使用的这行代码,但我不知道为什么它会返回12:00

string FitaCorIn1 = Convert.ToDateTime(req.FACorrectionIn1).ToString("hh:mm") == null ? "00:00" : Convert.ToDateTime(req.FAIn1).ToString("hh:mm");
string FitaCorOut1 = Convert.ToDateTime(req.FACorrectionOut1).ToString("hh:mm") == null ? "00:00" : Convert.ToDateTime(req.FAIn1).ToString("hh:mm");

因此,您可以在我的代码中看到如果datetime的值为null,我想显示00:00,如果它不为null,它将显示当前值。

注意

  

12小时格式

3 个答案:

答案 0 :(得分:1)

您应该在转换之前检查null,否则您可能会从convert方法获得异常。 (根据评论)FACorrectionIn1似乎是DateTime类型,如果是这样你必须检查它们与DateTime.MinValue的比较,如果它是可以为空的DateTime,你也可以检查null。

  

为什么即使数据库中的值为12:00,也会得到FACorrectionIn1   空

同样的原因01/01/0001 00:00:00是一个DateTime对象,因此它不会为null,因此检查null的条件变为false,因为它的默认值为.ToString("hh:mm")。因此,当您使用12:00对其进行格式化时,您将获得string FitaCorIn1 = req.FACorrectionIn1 == DateTime.MinValue ? "00:00" : Convert.ToDateTime(req.FAIn1).ToString("hh:mm"); 。所以你必须这样做:

Convert.To..

如果您使用解析代替<project> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>my-app</artifactId> <version>1</version> </project>

,那就太棒了

答案 1 :(得分:0)

您应该使用HH:mm格式。

Convert.ToDateTime(req.FAIn1).ToString("HH:mm");

答案 2 :(得分:0)

我现在得到了..感谢spencer7593 ..这是我现在的代码。

 string FitaCorIn1 = req.FACorrectionIn1 == null ? "00:00" : Convert.ToDateTime(req.FACorrectionIn1).ToString("hh:mm");
 string FitaCorOut1 = req.FACorrectionOut1 == null ? "00:00" : Convert.ToDateTime(req.FACorrectionOut1).ToString("hh:mm");