博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
将不确定变为确定~DateTime.MinValue和MaxValue引发的异常
阅读量:6432 次
发布时间:2019-06-23

本文共 1793 字,大约阅读时间需要 5 分钟。

问题描述:

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);

它的结果为:

它在程序中的体现为:

     /// 用户列表        ///         ///         ///         ///         /// 
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类型代替!

转载地址:http://jltga.baihongyu.com/

你可能感兴趣的文章
System.currentTimeMillis()计算方式与时间的单位转换
查看>>
Extra:Variable Types
查看>>
ASP.NET温故而知新学习系列之ASP.NET多线程编程—.NET下的多线程编程Thread中委托的使用(六)...
查看>>
最新整理知识结构图
查看>>
linux安装mysql
查看>>
flask 2 进阶
查看>>
sentences in movies and teleplays[1]
查看>>
【20181023T1】战争【反向并查集】
查看>>
win7网络共享原来如此简单,WiFi共享精灵开启半天都弱爆了!
查看>>
iOS9 未受信任的企业级开发者
查看>>
paper 40 :鲁棒性robust
查看>>
优化MySchool数据库(事务、视图、索引)
查看>>
使用笔记:TF辅助工具--tensorflow slim(TF-Slim)
查看>>
大话设计模式读书笔记3——单例模式
查看>>
实验三
查看>>
Vue 项目构建
查看>>
[Ruby on Rails系列]2、开发环境准备:Ruby on Rails开发环境配置
查看>>
android studio adb
查看>>
框架源码系列二:手写Spring-IOC和Spring-DI(IOC分析、IOC设计实现、DI分析、DI实现)...
查看>>
asp.net编译 懒人脚本
查看>>