数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

跟我学SQL:datetime和interval数据类型


发布日期:2019年08月22日
 
跟我学SQL:datetime和interval数据类型

datetime和interval是两种与时间有关的数据类型它们的作用体现在以下几个方面创建或者更改记录库中的某条记录当某个时间发生时运行记录或者计算某个datetime变量建立后所经历过的时间本文将介绍SQL标准对上述两种数据类型的描述

SQL数据类型

如果你想进一步了解SQL数据类型请阅读SQL基础字符串型数据类型这篇文章的范围覆盖了SQL中的通用数据类型并说明了各种字符串数据类型的用法SQL基础数字数据类型详细介绍了数字数据类型

Datetime

用于表示时间或者日期的数据类型都属于datetime类型每一种datetime数据类型都有他自己的用于获取值的长度和它所保存信息的手段如天分钟秒的小数等等

实际上datetime的实现形式随着定义它的标准不同而拥有不同的长度和格式然而各个公司定义的类型都内在地符合下述规则举例来说时标(timestamp)的某个实现可能没有分隔符随着细节的规范不同长度和格式也发生变化在某些场合以空格做为间隔符Datetime数据类型包括DATATIME和TIMESTAMP让我们仔细研究这些分类首先我们看看DATA

DATA

用法DATA

DATA类型允许没有参数如精度

DATA的字段包括年月和日

DATA的长度为十个字符 YYYYMMDD(Y表示年M表示月D表示日

它只允许与其它DATA类型字段相比较

允许的数字必须符合公历的规范

TIME

用法TIME(精度)

该类型包含了小时分和秒格式为hh:mm:ss(h表示小时m表示分s表示秒)

精度可选择(……)

时间以世界标准时间(Universal Coordinated TimeUTC)为准::表示格林威治的午夜服务器的时区隐含的

如果不需要秒的小数部分那么TIME的长度为八个字符否则就是八位长度在加上精度hh:mm:ssp

它只能与其它TIME类型数据进行比较

如果没有指定精度精度默认为

TIME WITH TIME ZONE

用法TIME (精度) WITH TIME ZONE

这个值要符合TIME数据类型

TIMEZONE部分表示相对UTC的时差::+hh:mm它的范围为::

精度表示秒的小数部分

带有TIMEZONE的TIME长度为个字符加上精度在加上一个分隔符

只可以与带有TIMEZONE的TIME类型数据进行比较

TIMESTAMP

用法TIMESTAMP(精度)

该类型包含有年格式为YYYYMMDD hh:mm:ss

可以包括秒的小数部分这由定义的精度决定

它的日期部分符合公历标准时间部分为UTC格式默认为当地时区

时标的长度为个字符加上精度在加上精度分隔符

许多系统偏离上述定义的长度如UNIX风格时标格式为YYYYMMDD hh:mm:ssp

如果没有定义精度默认值为但是许多数据库公司默认为所以请参考你的开发文档

时标只可以与其它TIMESTAMP类型的值相比较

TIMESTAMP WITH TIME ZONE

用法TIMESTAMP(精度)WITH TIME ZONE

时标部分符合上述TIMESTAWP的规则

精度代表秒的小数部分

时区部分的要求和TIME WITH TIME ZONE一样即时区符合UTC规范范围在:到 +:之间

总长度为个字符加上精度加上一个精度分隔符YYYYMMDD hh:mm:ssp

它只能与其它TIMESTAMP WITH TIME ZONE类型的数据进行比较

Interval

Interval用于表示时间尺度例如你可以用操作符(将在下面进行解释)去计算两个日期间天数并加以保存

各个公司在处理interval上有很大的不同——有些公司提供不同的度量单位如年或者分钟而有些公司在根本就不支持intervalSQL标准的interval类型只提供一种子类型INTERVAL

INTERVAL

用法 INTERVAL (限定语)

有两种类型的interval一种为年份-月份即保存年份和月份(YYYYMM)一种为天-时间(DD HH:MM:SS)用来保存天数小时分钟和秒

限定语——在某些数据库中interval前导精度(lead precision)——根据其值来指示interval采用年份-月份还是天-时间方式

interval可正可负

当与其它interval类型变量相比较时结果保持最大精度如有必要则补零

INTERVAL全部由整数组成除了含有小数的秒之外

年份-月份类型的interval变量只能与其它的年份-月份的interval变量进行比较天-时间类型也与此类似

操作符

操作结果类型

当处理日期时间时时区保持不变——尽管有些数据库为了比较而将其中的一个时区转换为另一个存在一些操作关键字如OVERLAPS和EXTRACT它们用于操作和比较datetime类型数据然而不同的数据库在这些操作关键字用法和支持方式上有着很大的不同

OVERLAPS用于计算时间交叠的跨度其操作对象可以是两个datetime也可以是一个datetime和一个intervalEXTRACT用于提取datetime或者interval类型数据的某个部分如在DATA类型数据中提取月份

数据类型

由于已建立的标准是为了各公司在现有基础上实现实际上的数据类型的因此在具体限制参数和数据类型等方面你还是需要经常参考你的数据库文档

上一篇:关于SQL Server问题的一些实用经验技巧

下一篇:连接池与SQLServer2000 Analysis Services