龙空技术网

SQL Server 数据类型的详细介绍及应用实例2

剑云锋 216

前言:

此时同学们对“sql server的二进制数据类型主要用来存储哪些对象”可能比较看重,各位老铁们都需要了解一些“sql server的二进制数据类型主要用来存储哪些对象”的相关文章。那么小编在网上收集了一些有关“sql server的二进制数据类型主要用来存储哪些对象””的相关资讯,希望姐妹们能喜欢,各位老铁们一起来学习一下吧!

SQL Server 数据库常见的数据类型分类:二进制数据类型:Bit、 Binary、Varbinary 和 Image字符数据类型: Char,Varchar 和 Text 、Nchar,Nvarchar 和Ntext日期和时间数据类型: Datetime 和 Smalldatetime货币数据的数据类型是Money 和 Smallmoney数字数据类型:Int,Smallint和 Tinyint;Decimal 和 Numeric;Float 和 Real;特殊的数据类型有3种,即 Timestamp、Bit 和 Uniqueidentifier。

Binary类型和char类型 请参见 :SQL Server 数据类型的详细介绍及应用实例1

接下来我们详细介绍一下datetime类型和money类型。

Datetime类型:Datetime和Smalldatetime.

**均为表示时间和日期,差异在精度和储存空间上。

有效的时间和日期:

表示方式:

1.时间在前,日期再后:"12:12:00.000 AM 9/25/2018"

2.日期在前,时间再后:"9/25/2018 11:11:11.000 PM"

DateTime和 Smalldatetime 的区别:

1.时间储存范围:

datetime 1753 年 1 月 1 日----- 9999 年 12 月 31 日

smalldatetime 1900 年 1 月 1 日------2079 年 06 月 06 日

2.储存方式及大小:

DateTime占8个字节,前4个字节储存1900 年 1 月 1 日之前或之后的天数,后 4 字节储存时间,且以午夜后经过的 1/300 秒数表示。

Smalldatetime 占4个字节,前2个字节存储 1900 年 1 月 1 日后的天数。后 2 个字节存储午夜后经过的分钟数。

3.时间精度:Smalldatetime精度比Datetime 精度差。

DateTime 1/300 s 即 3.33 毫秒

Smalldatetime 1 min

4.精度取舍点:

DateTime 的精度舍入点为:【 01.000s 、00.007s 、00.003s 、 00.000s】

.000s【.000-.001】 取.000s

--Returns time as 11:11:00.000.SELECT CAST('2018-09-25 11:11:00.991' AS datetime);SELECT CAST('2018-09-25 11:11:00.990' AS datetime);GO

.003s【.002-.004】 取.003s

--Returns time as 11:11:00.993.SELECT CAST('2018-09-25 11:11:00.994' AS datetime);SELECT CAST('2018-09-25 11:11:00.993' AS datetime);SELECT CAST('2018-09-25 11:11:00.992' AS datetime);

.007s【.005-.008】 取.007s

--Returns time as 11:11:00.997.SELECT CAST('2018-09-25 11:11:00.998' AS datetime);SELECT CAST('2018-09-25 11:11:00.997' AS datetime);SELECT CAST('2018-09-25 11:11:00.996' AS datetime);SELECT CAST('2018-09-25 11:11:00.995' AS datetime);

01.000s 【.009】 进一

 --Returns time as 11:11:01.000.SELECT CAST('2018-09-25 11:11:00.999' AS datetime);

Smalldatetime 的精度舍入点为:

<=01:29.998 min 取 01:00.000 min

>=01 : 29.999 min 取 02:00.000 min

<=01:29.998 min 取 01:00.000 min

--Return time as 11:11:00.select CAST('2018-9-25 11:11:29.998' as smalldatetime);

>=01 : 29.999 min 取 02:00.000 min

--Return time as 11:12:00.select CAST('2018-9-25 11:11:29.999' as smalldatetime);
Money类型: money 和smallmoney

Money和Smallmoney共同点:

1.都是用来表示钱或者货币值。

2.精确单位都是: 货币单位的万分之一。

Money和Smallmoney不同点:

1. 储存占用不同:

Money类型占用8个字节,取值范围长度为:15位.4位 【整数15位,小数4位】

即介于 -922,337,203,685,477.5808 和 922,337,203,685,477.5807 之间的货币数据。

Smallmoney类型占用4个字节,取值范围长度为:6位.4位 【整数6位,小数4位】

即介于 -214,748.3648 和 214,748.3647 之间的货币数据。

select CAST('-922,337,203,685,477.5808 ' as money);select CAST('922,337,203,685,477.5807' as money);select CAST('-214,748.3648 ' as smallmoney);select CAST('214,748.3647' as smallmoney);

Money 类型和 float类型的联系:

float 数据类型是一种近似数值类型,供浮点数使用, 浮点数可以是从-1.79E+308到1.79E+308 之间的任意数。float类型就是money类型一样的数据类型,但是小数点后能保留12位。

select CAST('748.361242413121242' as float);

本文部分内容来自网络,如有侵权,请联系修改。

标签: #sql server的二进制数据类型主要用来存储哪些对象 #sqlserver二进制数据类型