2012-10-17 113 views
5

在我的C#代碼中,我有一個DateTime?變量。從數據庫獲取值時,它可以是null或可以有一些日期/時間值。比較Nullable DateTime變量的默認值

在前端我不想得到默認值(01-01-1900 12:00:00 am)。什麼是比較我的日期變量爲這個默認日期的最佳方式?

+0

你的數據庫是否真的爲你的列存儲'null'? – mauris

+1

如果值爲空,否則數據庫不存儲「01-01-1900」。 –

+1

也許你應該將數據庫存儲爲空而不是「01-01-1900」? –

回答

6

您可以創建一個const:

static readonly DateTime DefaultDateTime = new DateTime(1900, 1, 1, 0, 0, 0); 

,然後比較這方式:

DateTime? myVariable = returnedFromDb == DefaultDateTime ? default(DateTime?) : returnedFromDb; 
+0

是的,我正是這樣做的。 –

3

你可以有一個擴展方法,像這樣:

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();