SQLServer日期与小日期

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (24)

我有一堆表格,这些表格综合了不同层次的数据:季度、小时、每日和每月。除此之外,还有一个包含“原始”数据的基表,这个表还包含一些额外的列。合并后的表都有相同的列。

基表、季度表和小时表使用类型的列。smalldatetime要对数据进行时间戳,请执行以下操作。本专栏还可以在小时表和日表中使用,但当然这里不需要时间方面。

为了简单起见,我也想在这里使用小时间数据类型,但也许对列使用日期数据类型对性能更好?

当谈到性能的时候,类型之间真的有很大的区别吗?

提问于
用户回答回答于

使用所需的最小数据类型通常是个好主意。不应该使用varchar(Max)甚至varchar(10)来存储2个字符状态的缩写。

在同样的意义上,如果只需要日期(例如4/11/2001),那么使用日期类型而不是日期类型。

虽然它在性能上可能不会有很大的提高(日期时间比日期大5个字节),但是如果有多个字段和/或多行,则可以开始加法。

用户回答回答于

不同的数据类型有不同的大小哪种影响数据/索引的大小,这比查询性能(I/O成本)更重要。

另一方面,数据类型之间的转换可能会花费很大。此外,各种数据类型之间的隐式转换可能是错误的/意外的。

我会保留一种类型的日期(4字节)smalldatetime(在这种情况下)如果在日期列上的表之间联接,或者如果没有保持最小的日期类型---smalldatetime储存时间及宿舍及date

扫码关注云+社区