转换DateTime?到DateTime

时间:2014-05-21 11:16:32

标签: c# linq

我有以下代码。其中从sql数据库读取日期时间但是这允许空值。那么我得到的数据类型是DateTime?我需要在代码中将其转换为DateTime。我无法更改数据库上的allow nulls选项。

我尝试了以下但不起作用

DateTime  Date  = startsUps.FirstOrDefault().DATE_TIME;

string ShortDate = Date.ToShortDateString();

关于如何转换日期时间的任何想法?到了约会时间会很棒。

3 个答案:

答案 0 :(得分:2)

尝试以下方法:

DateTime newDate = null;
try 
{
    var obj = startsUps.FirstOrDefault();
    newDate = obj.DATE_TIME ?? DateTime.Now;
}
catch 
{
    //If FirstOrDefault() is null do something else
    newDate = DateTime.Now;
}

??表示如果左侧为null,则会在右侧创建新的DateTime(现在)。

答案 1 :(得分:1)

如果您确定数据库中没有空值,则可以转换为所需的类型:

var startUp = startsUps.FirstOrDefault();
if(startUp != null) {
    DateTime dateTimeNotNull  = (DateTime)startUp.DATE_TIME;
}

答案 2 :(得分:0)

您可以检查null并仅在数据库为空时指定日期时间。

DateTime finalDt = DateTime.Now;
if(yourDate != null)
   finalDt = yourDate;

您可以使用Null-coalescing运算符

DateTime finalDt = yourDate ?? DateTime.Now;