如何使最小日期与.NET和SQL Server 2005兼容

时间:2011-12-14 09:46:51

标签: .net sql-server-2005

我在.NET 3.5和SQL Server 2005中有一个应用程序。

我的应用程序中有很多实例要求用户提供日期。在那里我发现一个错误,即每当用户输入小于01/01/1753的日期时,就会出现以下错误:

  

SqlDateTime溢出。必须在1/1/1753 12:00:00 AM之间   12/31/9999 11:59:59 PM。

当我深入查看错误时,我发现.NET支持从01/01/000112/31/9999的日期,而SQL Server 2005支持01/01/175312/31/9999的日期范围。

现在我需要检查我的申请中的最短约会。

但问题是我必须在很多实例中实现它,所以找到一些更好的解决方案。

任何人都可以告诉我处理这个日期问题的另一种方式。

先谢谢

1 个答案:

答案 0 :(得分:5)

也许这可能会帮助您轻松获得有效的SQL DateTime

public static class Extensions
{
    public static DateTime AsSqlValue(this DateTime date)
    {
        if(date < SqlDateTime.MinValue.Value)
            return SqlDateTime.MinValue.Value;
        return date;
    }
}

用法

MyDateTime.AsSqlValue();