📄 sql server 6.5
字号:
作者:IP浪子
日期:99-5-26 下午 09:42:53
SQL Server 6.5对2000年问题的支持
中科院软件所 韩欧
随着2000年的逼近,使系统顺利地过渡到下一世纪已经是越来越迫切的问题。这项工程的复杂性是出乎人们预料的,原因之一是日期问题会涉及到系统的各个方面,包括硬件时钟、BIOS设置、操作系统软件、数据库管理系统及其它应用程序等。
数据库管理系统作为2000年(简称Y2K)问题的重要环节之一,对整个系统的顺利过渡影响很大。我们在选择数据库管理系统构建应用时,应该对是否支持2000年问题进行全面的考察。
Microsoft SQL Server 6.5作为一个企业级的基于客户机/服务器结构的关系型数据库管理系统,可以较好地处理2000年问题(可参看Http://www.microsoft.com/cio/articles/y ear2000.htm)。下面我们从MS SQL Server 6.5中对datetime类型数据的处理方法着手,来看看MS SQL Server 6.5对2000年前后日期的处理。
MS SQL Server 6.5中能够存储的日期数据类型有两种:Datetime和Smalldatetime,它们能够处理的日期范围和精度不同。日期数据在机内表示时是采用序列化的方法,即用整型值记录日期距离某年某月某日的天数和时间距离某一时刻的秒数或毫秒数。具体来说,Date time 数据类型采用两个四字节的整型数来分别存储距离1900年1月1日的天数(正数或负数)和距离12:00:00:000AM(午夜)的毫秒数,能存储的日期范围从1753年1月1日到9999年12 月31日。Smalldatetime 数据类型采用两个两字节的短整型数来分别存储距离1900年1月1日的天数(正数)和距离12:00AM(午夜)的分钟数,能存储的日期范围从1900年1月1日到207 9年6月6日。这种以序列化的方法存储日期的机制使得能够保存的日期范围很大,不受两位数字的影响,日期表示是否准确和能否过渡到下一世纪并无必然的联系。 这种机制为构建在MS SQL Server 6.5之上的应用能够正确处理2000年问题提供了技术上的保障,不但使应用可以正确地存储和显示2000年前后的日期,而且可以保证系统中涉及到日期的其它功能也不会因为2000年的到来而出现混乱,比如,2000年前后的记录可以正确地以日期排序;2000 年以前所做的备份可以正确地恢复到2000年后的系统中等等。
另外闰年处理也是2000年问题的一个重要环节。计算某一年是否是闰年的正确方法是:
(1)可以被4整除的年是闰年;
(2)但是,可以被100整除的年不是闰年;
(3)但是,可以被400整除的年是闰年。
某些设计不良的系统由于漏掉了第3条规则,而无法将2000年认作闰年。这样的错误不但会影响存储和显示,而且会影响到几乎所有涉及日期的计算,比如,计算某一日是一周中的第几天。在这方面,MS SQL Server 6.5提供了正确的计算闰年的方法, 提供了一些能够操纵日期和时间数据的函数,如使用DATEPART(weekday,date)可以计算给定日期是一周中的第几天。利用这些函数,程序开发人员可以方便而准确地在应用程序中处理日期和时间数据。
在MS SQL Server 6.5中,为方便用户输入日期时间数据,允许只输入日期或只输入时间,系统提供相应的缺省。在输入日期信息时,允许只输入两位数表示年,系统采用缺省的世纪,四位数的年又可以覆盖两位数。具体来讲,SQL Server 6.5中可以接受的表示日期数据的格式有许多种,列举如下:
Apr[il] [15][,] 1998
Apr[il] 15[,] [19]98
Apr[il] 1998 [15]
Apr[il] [19]98 15
[15] Apr[il][,] 1998
15 Apr[il][,][19]98
15 [19]98 apr[il]
[15] 1998 apr[il]
1998 APR[IL] [15]
[19]98 APR[IL] 15
1998 [15] APR[IL]
[0]4/15/[19]98 (mdy)
[0]4-15-[19]98 (mdy)
[0]4.15.[19]98 (mdy)
[04]/[19]98/15 (myd)
15/[0]4/[19]98 (dmy)
15/[19]98/[0]4 (dym)
[19]98/15/[0]4 (ydm)
[19]98/[04]/15 (ymd)
其中许多种格式接受以2位数表示的年份,如果输入的2位数年份小于50,则缺省被认为是21世纪的年份;如果输入的2位数年份大于等于50,则会被认为是20世纪的年份,当然可以通过输入4位数的年份来覆盖这种缺省。这种处理方法会给开发人员和用户带来许多方便。
从以上的叙述我们可以看出,如果采用MS SQL Server 6.5作为后台数据库开发应用程序,会为顺利过渡到下一世纪带来许多方便。但我们并不能认为用MS SQL Server 6.5构造的应用系统就完全不存在2000年的问题,这主要是因为2000年问题远远不仅涉及到数据库管理系统,还涉及到整个软硬件系统的许多方面,比如硬件的BIOS设置、操作系统软件以及应用程序的开发等等,所以我们仍需以最谨慎的态度来考察整个系统的各方各面,以确保系统的顺利过渡。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -