SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM之间---解决办法

传给数据库的时间类型的值为NULL,或者为DateTime.MinValue,或者为Convert.toDate(null),即(0001/01/01 0:00:00)

导致传到数据库的值为01年01月01日,从而导致溢出

using System;
using System.Collections.Generic;
using System.Data.SqlTypes;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            //.Net的最小时间和最大时间
            Console.WriteLine(DateTime.MinValue);
            Console.WriteLine(DateTime.MaxValue);

            //数据库的最小时间和最大时间
            Console.WriteLine(SqlDateTime.MinValue);
            Console.WriteLine(SqlDateTime.MaxValue);
        }
    }
}

调试输出结果

.NET中  DateTime最小值为: 0001-1-1 0:00:00

数据库中DateTime最小值为: 1753-1-1 0:00:00,

.NET中的最小值超出了Sql最小值的最小范围,导致数据溢出的错误。最大值一样

 
时间: 2024-11-16 07:27:39

SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM之间---解决办法的相关文章

解决:SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间提示问题

提示信息如下 “/”应用程序中的服务器错误. SqlDateTime 溢出.必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间. 问题现象: 问题原因: 出现个问题的原因是:在更新或者添加数据,出现的错误,再给parameters传递值没有对DateTime类型字段没有传递值,默认为null 但是在sqlserver里面对DateTime类型取值范围是:介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:5

(转)SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM之间

原因: 出现这种问题多半是因为你插入或者更新数据库时,datetime字段值为空默认插入0001年01月01日造成datetime类型溢出. 传给数据库表的时间类型值是null值.这里的null指的是程序代码中的null,多数出现这种情况的场景是:在程序里面定义了一个时间类型的变量,没有给赋值,就传给数据库,这时这个变量的值默认是赋成了01年01月01日;由于数据库中DateTime类型字段,最小值是1/1/1753 12:00:00,而.NET Framework中,DateTime类型,最小

VMWare 12虚拟机启动过程中提示“虚拟设备ide0:1无法连接”错误的解决办法

在VMWare 12上装好系统之后,正常地关闭.过了一天再次启动虚拟系统的时候,却提示"虚拟设备ide0:1无法连接"的错误,上网搜索一下并无找到具体的解决办法.强制关闭虚拟系统后,到虚拟机配置界面,找到CD/DVD配置一栏,将"启动时连接"前面的钩去掉即可解决此问题.之所以会出现这个问题是由于宿主主机并没有CD/DVD这个物理设备,所以如果钩选了"启动时连接"的话,系统会因为找不到真实的设备而报"虚拟设备ide0:1无法连接"

关于SqlDateTime溢出的问题

问题:  项目中为了在时间上保持一致性,将所有时间都转化为了UTC时间. 其中有一段SqlDateTime.MinValue的代码,由于疏忽将其转为UTC时间后导致了 "SqlDateTime溢出.必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM之间." 原因:  数据库中的dateTime类型,最小值是 1/11753 12:00:00,而当SqlDateTime.MinValue转换为UTC的时间后,超出了这个最小值范围.所以导致

WPF循环加载图片导致内存溢出的解决办法

程序场景:一系列的图片,从第一张到最后一张依次加载图片,形成"动画". 生成BitmapImage的方法有多种: 1. var source=new BitmapImage(new Uri("图片路径",UriKind.xxx)); 一般的场景使用这种方法还是比较方便快捷,但是对于本场景,内存恐怕得爆. 2. var data =File.ReadAllBytes("图片路径"); var ms = new System.IO.MemoryStr

Tomcat内存溢出解决办法

使用Java程序从数据库中查询大量的数据时出现异常:java.lang.OutOfMemoryError: Java heap space在JVM中如果98%的时间是用于GC且可用的 Heap size 不足2%的时候将抛出此异常信息.JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4.可以利用JVM提供的-Xmn -Xms -Xmx等

PHP内存溢出Allowed memory size of 解决办法

PHP内存溢出Allowed memory size of 解决办法 博客分类: php ============================Allowed memory size of  xxx bytes 以前追踪过这个问题,但是那个时候工具用的不太好,没看的这么细,这次搞的比较细,修正了偶以前的看法 .于是写小文一篇总结一下. PHP偶尔会爆一下如下 错误Allowed memory size of  xxx bytes exhausted at xxx:xxx (tried to a

Java中OutOfMemoryError(内存溢出)的三种情况及解决办法

相信有一定java开发经验的人或多或少都会遇到OutOfMemoryError的问题,这个问题曾困扰了我很长时间,随着解决各类问题经验的积累以及对问题根源的探索,终于有了一个比较深入的认识. 在解决java内存溢出问题之前,需要对jvm(java虚拟机)的内存管理有一定的认识.jvm管理的内存大致包括三种不同类型的内存区域:Permanent Generation space(永久保存区域).Heap space(堆区域).Java Stacks(Java栈).其中永久保存区域主要存放Class

未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序解决办法 错误信息:未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序。

解决办法: 去http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabaseEngine.exe下载.然后安装就行了. 本错误是由于你使用了ACCESS2007版本建立的数据库,但服务器中没有相配合使用的程序,所以出错. 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序. 说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈