DateTime.MinValue和MaxValue引发的异常
异常 引发 datetime
2023-09-27 14:28:06 时间
转载: http://www.cnblogs.com/lori/p/3186807.html
问题描述:
SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间
概念相关
.Net中的DateTime结构类中的MinValue和MaxValue有时会引发一个异常,那就是日期溢出的问题,您输入的日期必须介于 1753 年 1 月 1 日到 9999 年 12 月 31 日之间,而DateTime.MinValue实际上不是1753 年 1 月 1日,而是0000年1月1日,而数据库可以接收的日期时间最小值为1753/1/1,这时由于.net产生的DateTime.MinValue远远小 于它,所以,它出现了日期溢出的问题。
解决问题
我们作一个测试:
Console.Write(DateTime.MinValue);
Console.Write(DateTime.MaxValue);
它的结果为:
所以,如果你在程序中,进行数据库查询时,需要对日期进行查询,如果希望给日期变量一个默认值,那不会使用DateTime.MinValue,而 要使用SQL的数据结果中的MinValue,它位于System.Data.SqlTypes名称空间下,表示与SQLSERVER对应的数据类型,测 试代码如下:
Console.WriteLine(System.Data.SqlTypes.SqlDateTime.MinValue);
Console.WriteLine(System.Data.SqlTypes.SqlDateTime.MaxValue);
它的结果为:
它在程序中的体现为:
/// 用户列表
/// </summary>
/// <param name="username"></param>
/// <param name="deptname"></param>
/// <param name="page"></param>
/// <returns></returns>
public ActionResult Index(
string username,
string deptname,
DateTime? startTime,
DateTime? endTime,
int? page)
{
UserManager userManager = new UserManager();
ViewData["SiteMapID"] = 11;
var specification = new UserSpecification(startTime, endTime, username, deptname);
var model = userManager.GetWebManageUsers(specification, new PageParameters(page ?? 1, base.PageSize));
model.AddParameters = new System.Collections.Specialized.NameValueCollection();
model.AddParameters.Add("username", username);
model.AddParameters.Add("deptname", deptname);
model.AddParameters.Add("startTime", (startTime).ToString());
model.AddParameters.Add("endTime", (endTime).ToString());
if (Request.IsAjaxRequest())
return PartialView("List", model);
return View(model);
}
在上面的代码中,我们的DateTime类型,由于与数据库查询相关,所以,可以使用SqlDateTime类型代替!
相关文章
- Tomcat启动异常:A child container failed during start 与 ClassNotFoundException: org.slf4j.Loggerl分析与解决方法
- android 异常:ScrollView can host only one direct child
- dsLinq.Count() 引发了“System.NullReferenceException”类型的异常
- SpringBoot+Mybatis+Druid批量更新 multi-statement not allow异常
- Python爬虫:Scrapy与__file__引发的异常
- MVC系列——一个异常消息传递引发的思考
- AES加密时的 java.security.InvalidKeyException: Illegal key size 异常
- 什么是空指针异常(NullPointerException),如何解决避免它?
- ASP.NET Core应用的错误处理[2]:DeveloperExceptionPageMiddleware中间件如何呈现“开发者异常页面”
- Oracle数据迁移后由列的直方图统计信息引起的执行计划异常
- dotnet C# 如果在构造函数抛出异常 析构函数是否会执行
- 2019-11-29-WPF-如何在绑定失败异常
- 2019-4-12-WPF-类型的构造函数执行符合指定的绑定约束的调用时引发了异常