您现在的位置是:网站首页> 编程资料编程资料
SQL Server 日期相关资料详细介绍_MsSql_
2023-05-26
634人已围观
简介 SQL Server 日期相关资料详细介绍_MsSql_
一、日期类型:
对于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) | 不具有确定性 |
精度较低的系统日期和时间函数
函数 | 语法 | 返回值 | 返回数据类型 | 确定性 |
CURRENT_TIMESTAMP
| CURRENT_TIMESTAMP | 返回包含计算机的日期和时间的 datetime2(7) 值,SQL Server 的实例正在该计算机上运行。 时区偏移量未包含在内。 | datetime | 不具有确定性 |
GETDATE
| GETDATE ( ) | 返回包含计算机的日期和时间的 datetime2(7) 值,SQL Server 的实例正在该计算机上运行。 时区偏移量未包含在内。 | datetime | 不具有确定性 |
GETUTCDATE
| GETUTCDATE ( ) | 返回包含计算机的日期和时间的 datetime2(7) 值,SQL Server 的实例正在该计算机上运行。 日期和时间作为 UTC 时间(通用协调时间)返回。 | datetime | 不具有确定性 |
用来获取日期和时间部分的函数
函数 | 语法 | 返回值 | 返回数据类型 | 确定性 |
DATENAME
| DATENAME ( datepart , date ) | 返回表示指定日期的指定 datepart 的字符串。 | nvarchar | 不具有确定性 |
DATEPART
| DATEPART ( datepart , date ) | 返回表示指定 date 的指定 datepart 的整数。 | int | 不具有确定性 |
| 提示:
本文由神整理自网络,如有侵权请联系本站删除!
本站声明: 1、本站所有资源均来源于互联网,不保证100%完整、不提供任何技术支持; 2、本站所发布的文章以及附件仅限用于学习和研究目的;不得将用于商业或者非法用途;否则由此产生的法律后果,本站概不负责!
相关内容
点击排行本栏推荐
|
