从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含961字,纯文字阅读大概需要2分钟。
内容图文
![从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值](/upload/InfoBanner/zyjiaocheng/1110/6c0bb1f59a8640e1ab8619d976dcdd60.jpg)
- 给这些字段一个值(不管它是否在数据库设置了默认值),并且日期要大于1753年1月1日,这是最简单的方法。
- 将数据库类型修改为datetime?类型,也就是说允许为空。
- 修改数据库字段类型为datetime2类型,前提是数据库要支持该类型。
- 在C#中用new DateTime(year,month,day,hour,minute,second)来限制精度,原因之后会在datetime2和datetime的区别中提到。
- 这个方法不太推荐,将model的edmx中的providerManifestToken设置成2005,这样ef就默认转化成datetime。
datetime2和datetime的区别:
官方MSDN对于datetime2的说明:定义结合了 24 小时制时间的日期。 可将 datetime2 视作现有 datetime 类型的扩展,其数据范围更大,默认的小数精度更高,并具有可选的用户定义的精度。
这里值的注意的是datetime2的日期范围是"0001-01-01 到 9999-12-31"(公元元年 1 月 1 日到公元 9999 年 12 月 31 日)。
而datetime的日期范围是:”1753 年 1 月 1 日到 9999 年 12 月 31 日“。这里的日期范围就是造成“从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值”这个错误的原因。
DateTime字段类型对应的时间格式是yyyy-MM-dd HH:mm:ss.fff,3个f,精确到1毫秒(ms),示例2014-12-0317:06:15.433。 DateTime2字段类型对应的时间格式是yyyy-MM-dd HH:mm:ss.fffffff,7个f,精确到0.1微秒(μs),示例2014-12-0317:23:19.2880929。 如果用SQL的日期函数进行赋值,DateTime字段类型要用GETDATE(),DateTime2字段类型要用SYSDATETIME()。
原文:https://www.cnblogs.com/yexiaoyanzi/p/12093694.html
内容总结
以上是互联网集市为您收集整理的从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值全部内容,希望文章能够帮你解决从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。