加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门站长网 (https://www.0592zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

SQL Server 日期相关资料详细详解

发布时间:2021-11-27 10:45:49 所属栏目:教程 来源:互联网
导读:一、日期类型: 对于SQL Server 2008 来说(因为2000甚至2005已经稍微有被淘汰的迹象,所以在此不作过多说明,加上自己工作使用的是2008R2。所以不保证08以前的能用),日期类型有: 数据类型 格式 范围 精确度 存储大小(以字节为单位) 用户定义的秒的小数

一、日期类型:
 
对于SQL Server 2008 来说(因为2000甚至2005已经稍微有被淘汰的迹象,所以在此不作过多说明,加上自己工作使用的是2008R2。所以不保证08以前的能用),日期类型有:
 
数据类型
 
格式
 
范围
 
精确度
 
存储大小(以字节为单位)
 
用户定义的秒的小数精度
 
时区偏移量
 
time
 
hh:mm:ss[.
 
nnnnnnn]
 
00:00:00.0000000 到 23:59:59.9999999
 
100 纳秒
 
3 到 5
 

 

 
date
 
YYYY-MM-DD
 
0001-01-01 到 9999-12-31
 
1 天
 
3
 

 

 
smalldatetime
 
YYYY-MM-DD hh:mm:ss
 
1900-01-01 到 2079-06-06
 
1 分钟
 
4
 

 

 
datetime
 
YYYY-MM-DD hh:mm:ss[.
 
nnn]
 
1753-01-01 到 9999-12-31
 
0.00333 秒
 
8
 

 

 
datetime2
 
YYYY-MM-DD hh:mm:ss[.
 
nnnnnnn]
 
0001-01-01 00:00:00.0000000 到 9999-12-31 23:59:59.9999999
 
100 纳秒
 
6 到 8
 

 

 
datetimeoffset
 
YYYY-MM-DD hh:mm:ss[.
 
nnnnnnn] [+|-]hh:mm
 
0001-01-01 00:00:00.0000000 到 9999-12-31 23:59:59.9999999(以 UTC 时间表示)
 
100 纳秒
 
8 到 10
 

 

 
注意:所有系统日期和时间值均得自运行 SQL Server 实例的计算机的操作系统。
 
每一种日期类型有其使用范围,当然以刚好适用为最佳选择,切记不要为了方便,什么都用datetime类型。从性能方面会有很大影响,举个例子:
 
一个表,有1亿行的数据,有10列日期型(对于一些历史表来说这是完全有可能的)。如果全部使用datetime,那么光这部分的存储空间就是:10*100000000*8字节/(1024*1024)≈7629M≈7.4G,当然,如果有这样的需要,再大也还是要用的,假设其实业务上不需要那么精确(因为datetime是精确到0.00333秒),只需要精确到1分钟即可,那么毫不犹豫使用smalldatetime,可以减少一半的空间,也就是大约3.7G。减少空间的好处有很多,比如备份及数据库文件的大小可以减少,让有限的预算做更多的事情。而且数据页固定8KB,越少的体积单页能存放的数据也就越多,查询时要访问的页面就更少,缓解I/O压力。同时对索引的使用也更有效,等等。
 
所以这里就能体现出“设计”的重要性。
 
二、日期函数:日期函数是处理日期的基础,牢记日期函数能减少很多编程工作
 
精度较高的系统日期和时间函数
 
精确程度取决于运行 SQL Server 实例的计算机硬件和 Windows 版本。标注有:2012有效的是只有2012才出现的功能
 
函数
 
语法
 
返回值
 
返回数据类型
 
确定性
 
SYSDATETIME
 
SYSDATETIME ()
 
返回包含计算机的日期和时间的 datetime2(7) 值,SQL Server 的实例正在该计算机上运行。
 
时区偏移量未包含在内。
 
datetime2(7)
 
不具有确定性
 
SYSDATETIMEOFFSET
 
SYSDATETIMEOFFSET ( )
 
返回包含计算机的日期和时间的 datetimeoffset(7) 值,SQL Server 的实例正在该计算机上运行。
 
时区偏移量包含在内。
 
datetimeoffset(7)
 
不具有确定性
 
SYSUTCDATETIME
 
SYSUTCDATETIME ( )
 
返回包含计算机的日期和时间的 datetime2(7) 值,SQL Server 的实例正在该计算机上运行。
 
日期和时间作为 UTC 时间(通用协调时间)返回。
 
datetime2(7)
 
不具有确定性
 
精度较低的系统日期和时间函数
 
函数
 
语法
 
返回值
 
返回数据类型
 
确定性

(编辑:厦门站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读