zoukankan      html  css  js  c++  java
  • DateTime数据类型保存问题(DateTime2)

    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()。

  • 相关阅读:
    Circular vector
    【杂题】进制转换
    【POJ】3006
    【POJ】1503
    【POJ】2262
    【POJ】1083
    【POJ】2739
    对拍
    【POJ】2159
    【POJ】3299
  • 原文地址:https://www.cnblogs.com/danlis/p/5015399.html
Copyright © 2011-2022 走看看