DateTime And DateTime2

问题:

从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值

原因:

EF中model存在datetime类型的字段,如果不进行赋值,默认会生成0001-01-01 0:00:00的时间值,这个值属于datetime2类型,存储到数据库会进行报错。

解决方式:

1.将数据库中的所有的datetime类型的字段的数据类型均改为datetiem2

2.将model中的datetime类型修改为datetime?

3.存储的时候,将datetime类型的值进行赋值操作,=DateTime.Now;

注释:

DateTime2是从SQL2008开始支持一个新的日期数据类型。
DateTime字段类型对应的时间格式是yyyy-MM-dd HH:mm:ss.fff,3个f,精确到1毫秒(ms),示例2014-12-0317:06:15.433。DateTime支持日期从1753年1月1日到9999年12月31日,时间部分的精确度是3.33毫秒,它需要8字节的存储空间。

DateTime2字段类型对应的时间格式是yyyy-MM-dd HH:mm:ss.fffffff,7个f,精确到0.1微秒(μs),示例2014-12-0317:23:19.2880929。DateTime2则支持从0001年01月01日到9999年12月31日,时间部分的精度是100纳秒,占用6到8字节的存储空间,取决于存储的精度。DateTime2(N)表示了秒钟的精度,N=0到7,表示精确到秒钟后的几位数。DateTime(0)表示精确到秒;DateTime2(3)相当于原始的DateTime类型,但是能精确到1毫秒,占用7字节;DateTime2(7)则能达到最高的精度,100纳秒。

如果用SQL的日期函数进行赋值,DateTime字段类型要用GETDATE(),DateTime2字段类型要用SYSDATETIME()。

DateTime数据类型保存问题(DateTime2)的更多相关文章

  1. System.Data.SqlClient.SqlException: 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值

    System.Data.SqlClient.SqlException: 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值.解决办法是: 而这位大哥提出的解决办法 ...

  2. asp.net MVC中使用entity framework出现从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值”的处理

    方法一: 使用DateTime类型的字段在作为参数传入到数据库前记得赋值,并日期要大于1753年1月1日. 方法二: 将DateTime类型的字段修改为DateTime?类型,由于可空类型的默认值都是 ...

  3. SQL Server datetime数据类型设计、优化误区

    一.场景 在SQL Server 2005中,有一个表TestDatetime,其中Dates这个字段的数据类型是datetime,如果你看到表的记录如下图所示,你最先想到的是什么呢? (图1:数据列 ...

  4. sql server2000中使用convert来取得datetime数据类型样式(全)

    sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-0 ...

  5. sql server报【从varchar数据类型到datetime数据类型的转换产生一个超出范围的值】错误的解决办法

    产生这个错误的原因是在使用convert函数将给定的日期字符串转换为日期类型的时候,因为datetime这个数据类型有时间数值的范围限定,当超出时间范围时就抛出这个错误. 如果类型是[datetime ...

  6. 对于处理datetime数据类型的一些常用方法:

    datetime数据类型常用方法: 在项目中从数据库中取出数据后通常需要先绘制图像进行数据的观察,此过程中使用到的方法: 1.时间数据类似于 2022-03-23 14:21:45 可以先转换为dat ...

  7. 把excel的数据导入到SQLSERVER里面,excel的字符串时间在导入sql库显示datetime 数据类型的转换产生一个超出范围的值

    这是我Excel导入的数据,准备把这个varchar(50)时间导入我的userInfo表中的出生日期字段datatime,如果你的数据正常,是可以导入的, 但是有些日期可能超出datatime的最大 ...

  8. 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值

    具体的错误原因是:C#中的DateTime类型比SqlServer中的datetime范围大.SqlServer的datetime有效范围是1753年1月1日到9999年12月31日,如果超出这个范围 ...

  9. 【转】MySQL datetime数据类型设置当前时间为默认值

    转自http://blog.csdn.net/u014694759/article/details/30295285 方法一: MySQL目前不支持列的Default 为函数的形式,如达到你某列的默认 ...

随机推荐

  1. MongoDB C Driver Building on CentOS

    Building on Unix Prerequisites OpenSSL is required for authentication or for SSL connections to Mong ...

  2. mysql分页查询语句怎么写?

    ref: http://www.dashen100.com/question/500 是用limit函数 取前5条数据 select * from table_name limit 0,5 或者 se ...

  3. unity3d 使用GL 方式画线

    这个是画线部分 private Vector3[] linePoints; public int m_LineCount; public int m_PointUsed; public void Re ...

  4. 【FastJSON】使用JSON.toJSONString()-解决FastJson中“$ref 循环引用”的问题

    fastjson 是一个 不错的json格式化工具, 但是在使用时,如果 碰到统一地址对象引用,就会用$ref替代 . 怎么去掉ref呢, 解决方法如下: String mapStr = JSONOb ...

  5. iOS:ODRefreshControl

    https://github.com/Sephiroth87/ODRefreshControl Important note if your project doesn’t use ARC: you ...

  6. git忽略已添加版本控制的文件

    今天使用git做maven项目的版本控制,刚开始搭建项目后,把所有文件全部提交了. 已经提交的文件,gitignore中后配置也无效了. 所以使用以下命令来操作,操作后要提交哦. 1.执行 git r ...

  7. spark shell学习笔记

    http://homepage.cs.latrobe.edu.au/zhe/ZhenHeSparkRDDAPIExamples.html

  8. php命令

    今天因为psi无法在5.3版本上运行,正好看了下这些php版本的特性. 无意中,5.4版本 Buid-in web server内置了一个简单的Web服务器 $ php -S localhost: 于 ...

  9. Sql server连接数据库报错相关

    情况一:此版本的 SQL Server 不支持用户实例登录标志. 解决方法: 方法1:在连接属性的设置里边,点高级,将User Instance 设置为false,默认的true(我在中没有找到相应的 ...

  10. docker开启api端口,docker启用加速

    此篇是针对centos6的docker,注意ubantu和centos7的会有区别. 需要在docker配置文件中修改信息 centos中是这个文件 /etc/sysconfig/docker,Ubu ...