首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server date与smalldatetime

SQL Server date与smalldatetime
EN

Stack Overflow用户
提问于 2011-04-11 21:38:31
回答 5查看 53.4K关注 0票数 19

我有一堆表,它们合并了不同级别的数据:季度、每小时、每天和每月。除此之外,还有一个包含“原始”数据的基表,这个表包含一些额外的列。统一表都有相同的列。

基表、季表和小时表使用smalldatetime类型的列为数据添加时间戳。这个列在每小时表和日表中也是可用的,但这里当然不需要时间方面。

为了简单起见,我想在这里也使用smalldatetime数据类型,但是对于列使用date数据类型可能会更好?

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

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-04-11 22:03:02

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

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

虽然这可能不是一个巨大的性能提升(DateTime比Date大5个字节),但如果您有多个字段和/或多个行,则可以开始累积。

票数 17
EN

Stack Overflow用户

发布于 2011-04-11 22:13:28

不同的数据类型有不同的size会影响数据/索引的大小,这比查询性能(I/O开销)更重要。

另一方面,在数据类型之间进行转换的代价可能很高。此外,各种数据类型之间的隐式转换可能是错误的/意外的。

如果对日期列进行表之间的连接,我会保留一种类型的日期(在本例中为4字节smalldatetime ),如果不是这样,则保留尽可能小的日期类型-- smalldatetime用于存储小时和季度,date用于纯日期。

票数 6
EN

Stack Overflow用户

发布于 2018-05-01 14:34:14

范围

SmallDateTime: 1900年1月1日至2079年6月6日DateTime :1753年1月1日至1999年12月31日

精度

SmallDateTime:分钟DateTime :三百分之一秒(3.33)

存储

SmallDateTime: 4字节DateTime :8字节

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5622158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档