C# 比较可为空的DateTime变量的默认值
在我的C代码中,我有一个C# 比较可为空的DateTime变量的默认值,c#,datetime,nullable,C#,Datetime,Nullable,在我的C代码中,我有一个DateTime?变量。从数据库获取值时,它可以是null,也可以有一些日期/时间值 在前端,我不想得到默认值(01-01-1900 12:00:00 am)。将my date变量与此默认日期进行比较的最佳方法是什么?您可以创建常量: static readonly DateTime DefaultDateTime = new DateTime(1900, 1, 1, 0, 0, 0); 然后用这种方式比较: DateTime? myVariable = returne
DateTime?
变量。从数据库获取值时,它可以是null
,也可以有一些日期/时间值
在前端,我不想得到默认值(01-01-1900 12:00:00 am)。将my date变量与此默认日期进行比较的最佳方法是什么?您可以创建常量:
static readonly DateTime DefaultDateTime = new DateTime(1900, 1, 1, 0, 0, 0);
然后用这种方式比较:
DateTime? myVariable = returnedFromDb == DefaultDateTime ? default(DateTime?) : returnedFromDb;
您可以有一个扩展方法,如下所示:
public static class DateTimeExtensions
{
static DateTime SQL_DEFAULT = new DateTime(1900, 1, 1);
public static bool IsDefaultValue(this DateTime dateTime)
{
return dateTime == SQL_DEFAULT;
}
}
然后只需测试值:
var isDefault=myDate.IsDefaultValue() 您的数据库是否确实为您的列存储了
null
?否如果值为null,数据库将存储“01-01-1900”。也许您应该让数据库存储为null而不是“01-01-1900”?我是第二个Torben。但是,如果你的数据库永远不会使用这个日期,那就继续吧——没有必要为一件不会打扰你的应用程序的小事做太多的变通。