我有以下代码。其中从sql数据库读取日期时间但是这允许空值。那么我得到的数据类型是DateTime?我需要在代码中将其转换为DateTime。我无法更改数据库上的allow nulls选项。
我尝试了以下但不起作用
DateTime Date = startsUps.FirstOrDefault().DATE_TIME;
string ShortDate = Date.ToShortDateString();
关于如何转换日期时间的任何想法?到了约会时间会很棒。
答案 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;