SQL Server中DateTime与DateTime2的区别
Tags: DateTimeDateTime2MSSQLSQL Server
DateTime字段类型对应的时间格式是 yyyy-MM-dd HH:mm:ss.fff ,3个f,精确到1毫秒(ms),示例 2014-12-03 17:06:15.433 。
DateTime2字段类型对应的时间格式是 yyyy-MM-dd HH:mm:ss.fffffff ,7个f,精确到0.1微秒(μs),示例 2014-12-03 17:23:19.2880929 。
如果用SQL的日期函数进行赋值,DateTime字段类型要用 GETDATE() ,DateTime2字段类型要用 SYSDATETIME() 。
datetime2支持datetime.minvalue,即0001/01/01
在SQL Server中,DateTime和DateTime2都是用于存储日期和时间数据的数据类型,但是它们有以下区别:
- 日期范围不同:DateTime数据类型的日期范围是1753年1月1日至9999年12月31日,而DateTime2数据类型的日期范围是0001年1月1日至9999年12月31日。
- 存储空间不同:DateTime数据类型需要占用8个字节,而DateTime2数据类型则需要占用6至8个字节,具体取决于所指定的精度。
- 精度不同:DateTime数据类型精确到1/300秒(即3.33毫秒),而DateTime2数据类型可以精确到100纳秒,可指定精度从0到7个小数位。
- 存储方式不同:DateTime数据类型以二进制方式存储,而DateTime2数据类型以类似于数字的方式存储,使得日期和时间计算更加准确。
总之,DateTime2相对于DateTime具有更广的日期范围、更高的精度和更准确的计算能力,但同时也需要更多的存储空间。因此,在设计数据库时,应该根据实际需要和数据大小来选择使用哪种日期和时间数据类型。