我在.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/0001
到12/31/9999
的日期,而SQL Server 2005支持01/01/1753
到12/31/9999
的日期范围。
现在我需要检查我的申请中的最短约会。
但问题是我必须在很多实例中实现它,所以找到一些更好的解决方案。
任何人都可以告诉我处理这个日期问题的另一种方式。
先谢谢
答案 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();