MS SQL Server 2000中用于日期时间存储数据类型说明

2021年9月21日 16点热度 0条评论 来源: yang073402

以下内容转载自:www.merrymart.net/bbs/

MS SQL Server 中用于日期时间存储的有两种数据类型:datetime,samlldatetime,所占的存储空间分别是8字节与4字节。

datetime数据类型在 MS SQL Server内部是采用两个4字节的整数存储的,取值范围是1753-1-1到9999-12-31,时间可以精确到300分之一秒,按照.000, .003, 或 .007 秒四舍五入。第一个4字节存储从基点日期(1900-1-1)之前或之后的数值,基点日期是系统内部参照日期。如果输入的日期早于1753-1-1将不能写入数据库。剩下的4字节用来存储在基点日期的午夜后的毫秒数。

smalldatetime数据类型存储时间与日期的精度小于datetime,取值范围是1900-1-1到2079-6-6,时间可以只精确到分钟。 SQL Server使用2个2字节的整数来存储它。第一个2字节存储从基点日期(1900-1-1)的天数,另一个2字节存储从基点日期午夜开始计算的分钟数。

所以从内部存储上分析,MS SQL Server对日期时间的存储上是不区分12小时或24小时的,但我们在输入的时候可以按照12小时计时方式或24小时计时方式表示的。

SQL Server 2000 能够识别如下加了单引号的字符串,中括号表示其中内容可选。
14:30
14:30[:20:999]
14:30[:20.9]
4am
4 PM
[0]4[:30:20:500]AM
我们也可以指定AM,PM后缀表明时间是中午12:00的之前还是之后,AM,PM大小写无关。
小时也可以被指定12小时或24小时表示方式的,如下是小时的数值如何被系统解析的:
   1)数值0表示午夜后的那个时刻,而不论我们是否有AM后缀。0 PM是错误的写法。
   2)如果没有AM,PM后缀,数值1--11表示中午之前的小时,这个时候等同于在数值后加AM后缀。如果1--11后是PM后缀则表示中午后的时间。
   3)小时数值12如果没有AM,PM后缀表示中午时刻。12AM表示午夜的开始时刻,12PMb表示中午开始时刻。如:12:01是中午后的1分钟,同12:01PM相通,而12:01AM表示午夜后的1分钟。时间表示: 12:01 ,00:01 或00:01AM表示的是同一时间。
   4)如果不指定AM,PM后缀,13--23表示中午后的时间,这个时候你也可以加上PM后缀表示:13PM--23PM。我们是不能指定13AM--23AM 的。
   5)使用24表示时间是无效的,可以用12:20AM 或 00:00 来表示午夜.毫秒可以用带有冒号(:)或点号(.)来表示。如果带有冒号,数值意味着千分之一秒;如果用带有点号方式表示,一个点号表示十分之一秒,两个点号表示百分之一秒,三个点号表示千分之一秒。如:12:30:20:1表示12:30分后,过了20秒加上千分之一秒。12:30:20.1表示12:30分后,过了20秒加上十分之一秒。

 

    原文作者:yang073402
    原文地址: https://blog.csdn.net/yang073402/article/details/4630571
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。