如何使.NET和SQL Server 2005的最小日期兼容
我在.NET3.5和SQLServer2005中有一个应用程序 在我的应用程序中,有很多实例要求用户输入日期。在那里,我发现一个错误,每当用户输入的日期小于如何使.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的日期范
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();