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

如何使.NET和SQL Server 2005的最小日期兼容,.net,sql-server-2005,.net,Sql Server 2005,我在.NET3.5和SQLServer2005中有一个应用程序 在我的应用程序中,有很多实例要求用户输入日期。在那里,我发现一个错误,每当用户输入的日期小于01/01/1753时,就会出现以下错误: SqlDateTime溢出。必须在1753年1月1日12:00:00 AM和 1999年12月31日晚上11:59:59 当我深入研究错误时,我发现.NET支持从01/01/0001到12/31/9999的日期,而SQL Server 2005支持从01/01/1753到12/31/9999的日期范

我在.NET3.5和SQLServer2005中有一个应用程序

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

SqlDateTime溢出。必须在1753年1月1日12:00:00 AM和 1999年12月31日晚上11:59:59

当我深入研究错误时,我发现.NET支持从
01/01/0001
12/31/9999
的日期,而SQL Server 2005支持从
01/01/1753
12/31/9999
的日期范围

现在我需要在我的申请表上签入min date

但问题是,我必须在很多情况下实现它,所以要找到更好的解决方案

谁能告诉我如何处理这个日期问题


提前感谢

也许这可以帮助您轻松获取有效的SQL日期时间

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

现在,您希望所有实例的最小日期为
01/01/1753
?将应用程序限制为SQL Server最小日期。是的,我希望最小日期为01/01/1753,这样我的应用程序就不会crash@MitchWheat:我怎样才能做到这一点,而且,在任何情况下,我都必须做到这一点,我需要一些函数或方法,通过这些函数或方法,我可以用一些简短的方法来解决。SQLServer2005没有好的解决方案。如果升级到SQL Server 2008,请使用与.NET支持相同日期范围的
DATETIME2
数据类型。但除此之外,您只需检查您的.NET代码,这样它就不会将1753-01-01之前的日期发送到数据库……这对我有很大帮助。谢谢@magnus
MyDateTime.AsSqlValue();